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

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

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 расширения?

спасибо заранее Энди!--4-->

2 ответов


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. Надеюсь, это поможет.


использовать TagBuilder