【发布时间】:2011-05-24 05:32:50
【问题描述】:
首先,我将 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 辅助扩展的自动编码吗?
提前致谢 安迪
【问题讨论】:
-
为了将来参考,MVC 有一个 System.Web.Mvc.TagBuilder 类,您可能想研究一下。它并没有否定返回 IHtmlString 的需求,但它为此类任务提供了比 StringBuilder 更多的功能。
标签: asp.net-mvc asp.net-mvc-3 razor html-encode html-helper