我使用以下代码从数据库中显示我的html编码文本:
@Html.Raw(HttpUtility.HtmlDecode(@item.Content))
我现在要做的是仅显示内容的20个字,并且" ..."在末尾。我该怎么做?我正在考虑为IHtmlString添加一个帮助器,但我不知道如何为IHtmlString返回x个单词
答案 0 :(得分:2)
我该怎么做?
您可以编写一个自定义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)