C# 显示html编码文本中的x个单词
我使用以下代码显示数据库中的html编码文本:C# 显示html编码文本中的x个单词,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我使用以下代码显示数据库中的html编码文本: @Html.Raw(HttpUtility.HtmlDecode(@item.Content)) 我现在想做的是只显示内容的20个单词,并在结尾显示“…”。我该怎么做?我正在考虑为IHtmlString添加一个帮助器,但我不知道如何返回IHtmlString的x单词 我该怎么做 您可以编写一个自定义HTML助手,负责将输入字符串解析为组成词,并获取其中的第一个x: public static class HtmlExtensions {
@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)