我试图在某些文字中突出显示搜索结果。我写了一个扩展方法:
public static string Highlight(this HtmlHelper html, string input, string searchPhrase)
{
Regex.Replace(input,
"\\b" + searchPhrase + "\\b",
"<strong>" + searchPhrase + "</strong>",
RegexOptions.IgnoreCase);
}
但是很明显,当这是Html.Encoded从视图中,html标签只是作为文本的一部分呈现。
有更好的方法吗?或者,如果我的想法没问题,我该如何使其发挥作用?
答案 0 :(得分:3)
public static MvcHtmlString Highlight(this HtmlHelper html, string input, string searchPhrase)
{
var value = Regex.Replace(
input,
"\\b" + searchPhrase + "\\b",
"<strong>" + searchPhrase + "</strong>",
RegexOptions.IgnoreCase
);
return MvcHtmlString.Create(value);
}
并在视图中:
@Html.Highlight("foo", "f")