HtmlHelper扩展方法的HTML编码

And*_*dyM 10 asp.net-mvc html-helper html-encode razor asp.net-mvc-3

首先,我使用带有Razor视图引擎的MVC 3 RC1.我有一个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();
}
Run Code Online (Sandbox Code Playgroud)

在视图上它被称为这样:

@Html.TabbedMenuItem("Home", "Index", "Home")
Run Code Online (Sandbox Code Playgroud)

我得到的问题是MVC自动对视图中的结果进行HTML编码,所以我得到的是字符串的编码版本:

<li>Home</li>
Run Code Online (Sandbox Code Playgroud)

有谁知道如何禁用HTML帮助扩展的自动编码?

在此先感谢安迪

小智 21

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());
}
Run Code Online (Sandbox Code Playgroud)

使用返回值IHtmlString.希望这有帮助.