超文本标记语言编码和字符串包含html片段

本文关键字:html 片段 包含 字符串 编码 超文本标记语言 | 更新日期: 2023-09-27 17:50:40

我试图在一些文本中突出显示搜索结果。我写了一个扩展方法:

public static string Highlight(this HtmlHelper html, string input, string searchPhrase)
{
    Regex.Replace(input, 
                  "''b" + searchPhrase + "''b", 
                  "<strong>" + searchPhrase + "</strong>", 
                  RegexOptions.IgnoreCase);
}

但是显然当这是Html时。从视图中编码,html标记只是作为文本的一部分呈现。

有更好的方法吗?或者,如果我的想法是好的,我如何使它工作?

超文本标记语言编码和字符串包含html片段

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);
}

和view:

@Html.Highlight("foo", "f")