asp.net-mvc - HtmlHelper 扩展方法的 HTML 编码

标签 asp.net-mvc asp.net-mvc-3 razor html-encode html-helper

首先,我将 MVC 3 RC1 与 Razor View 引擎一起使用。我有一个 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();
}

在 View 上它的名称如下:

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

我遇到的问题是 MVC 会自动对 View 中的结果进行 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。 希望这有帮助。

关于asp.net-mvc - HtmlHelper 扩展方法的 HTML 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4421718/

相关文章:

c# - MVC 在布局代码之前执行 View 代码并破坏我的脚本顺序

javascript - Jquery.Get 调用 Controller 方法并不总是有效

c# - 在 Appharbor 上设置数据库

asp.net-mvc - ASP.NET MVC、插件架构和 id 冲突

jquery - MVC 3 JSON 调用在 IIS 中不起作用

jquery-mobile - asp.net mvc TextAreaFor 未被验证为必填字段

asp.net-mvc - 如何在 Razor View 文件中使用通用语法?

asp.net - 虚拟路径中带有点的 CSS 捆绑

jquery - 使用 Ajax 调用时值不会传递到 Controller 方法

asp.net-mvc-3 - MVC 3 Razor - 在局部 View 的布局页面中使用脚本引用