Html.Encode и строка, содержащая фрагменты html - PullRequest
0 голосов
/ 21 апреля 2011

Я пытаюсь выделить результат поиска в некотором тексте. Я написал метод расширения:

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

Но, очевидно, когда это HTML. Кодированные из представления, HTML-теги просто отображаются как часть текста.

Есть ли лучший способ сделать это? Или, если моя идея в порядке, как мне заставить ее работать?

1 Ответ

3 голосов
/ 21 апреля 2011
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")
...