Asp.net-Mvc

HtmlHelper 擴展方法的 HTML 編碼

  • March 3, 2012

首先,我將 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 助手擴展的自動編碼?

提前感謝安迪

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。希望這有幫助。

使用標籤生成器

引用自:https://stackoverflow.com/questions/4421718