【问题标题】:Why is my custom HTML Helper result getting html encoded?为什么我的自定义 HTML Helper 结果被 html 编码?
【发布时间】:2011-06-16 03:29:19
【问题描述】:

我在 asp.net mvc 3 中有以下自定义 html 助手

public static string RegisterJS(this HtmlHelper helper, ScriptLibrary scriptLib)
{
   return "<script type=\"text/javascript\"></script>\r\n";
}

问题是结果是这样得到 html 编码(我必须添加空格才能正确显示结果:

   &lt;script type=&quot;text/javascript&quot;&gt;&lt;/script&gt;

这显然对我没有多大帮助..我读过的任何内容都没有说明这一点..关于如何恢复我的真实结果有什么想法吗?

【问题讨论】:

    标签: asp.net-mvc-3 html-encode


    【解决方案1】:

    您在 Razor @ 块或 ASPX &lt;%: %&gt; 块中调用助手。
    这些构造会自动转义其输出。

    你需要更改助手返回一个HtmlString,它不会被转义:

    return new HtmlString("<script ...");
    

    【讨论】:

    • 谢谢。这是3的变化吗?即使是我发现的 MS 示例也只是返回了字符串..
    • @Shane:不;这是视图引擎的一个功能。
    • 您可能正在查看 MVC1 中的示例。在 MVC 2 中,所有帮助程序都更改为返回 HtmlString,以便 .NET 4 中的 ASPX 自动编码功能可以工作(使用 &lt;%: %&gt; 而不是 &lt;%= %&gt;)。新的 Razor 视图引擎会自动对所有内容进行编码。
    猜你喜欢
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 2017-06-21
    • 1970-01-01
    相关资源
    最近更新 更多