显示html编码文本中的x个单词
本文关键字:单词 html 编码 文本 显示 | 更新日期: 2023-09-27 18:26:17
我使用以下代码显示数据库中的html编码文本:
@Html.Raw(HttpUtility.HtmlDecode(@item.Content))
例如,我现在想做的是只显示20个单词的内容,并在末尾显示"…"。我该怎么做?我想为IHtmlString添加一个助手,但我不知道如何返回IHtmlString 的x个单词
我该怎么做?
您可以编写一个自定义HTML助手,负责将输入字符串解析为组成单词,并获取其中的第一个x
:
public static class HtmlExtensions
{
private readonly static Regex _wordsRegex = new Regex(
@"'s", RegexOptions.Compiled
);
public static IHtmlString FormatMessage(
this HtmlHelper htmlHelper,
string message,
int count = 20
)
{
if (string.IsNullOrEmpty(message))
{
return new HtmlString(string.Empty);
}
var words = _wordsRegex.Split(message);
if (words.Length < count)
{
return new HtmlString(htmlHelper.Encode(message));
}
var result = string.Join(
" ",
words.Select(w => htmlHelper.Encode(w)).Take(count)
);
return new HtmlString(result + " ...");
}
}
在您看来可以使用:
@Html.FormatMessage(item.Content)
或者,如果您想指定不同数量的单词到,请使用:
@Html.FormatMessage(item.Content, 5)