Подтвердить что ты не робот

Кодировка HTML для метода расширения HtmlHelper

Прежде всего, я использую MVC 3 RC1 с движком просмотра Razor. У меня есть расширение HTML-помощника, которое выглядит так:

public static string TabbedMenuItem(this HtmlHelper htmlHelper, string text, string actionName, string controllerName) {
    StringBuilder builder = new StringBuilder();
    builder.Append("<li>");

    builder.Append(text);

    builder.Append("</li>");
    return builder.ToString();
}

И на вид он называется вот так:

@Html.TabbedMenuItem("Home", "Index", "Home")

Проблема заключается в том, что MVC автоматически кодирует HTML-код в представлении, поэтому все, что я получаю, это закодированная версия строки:

<li>Home</li>

Кто-нибудь знает, как отключить автоматическую кодировку для ваших HTML-вспомогательных расширений?

Спасибо заранее Andy

4b9b3361

Ответ 1

public static IHtmlString TabbedMenuItem(this HtmlHelper htmlHelper, string text, string actionName, string controllerName)
{
    StringBuilder builder = new StringBuilder();
    builder.Append("<li>");

    builder.Append(text);

    builder.Append("</li>");
    return MvcHtmlString.Create(builder.ToString());
}

Использовать возвращаемое значение IHtmlString. Надеюсь на эту помощь.