为什么我的自定义HTML Helper结果会被html编码?

Sha*_*lle 26 html-encode asp.net-mvc-3

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

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

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

   &lt;script type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
Run Code Online (Sandbox Code Playgroud)

这对我来说显然没什么帮助..我读过的任何内容都没有说明这一点......关于如何才能得到真实结果的任何想法?

SLa*_*aks 38

你在Razor @块或ASPX <%: %>块中调用帮助器.
这些构造会自动转义其输出.

您需要更改帮助程序以返回一个HtmlString不会被转义的辅助程序:

return new HtmlString("<script ...");
Run Code Online (Sandbox Code Playgroud)

  • 谢谢.这是3的变化吗?即使我发现的MS示例只返回了字符串.. (2认同)