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

时间:2011-01-26 20:54:03

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

我在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;

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

1 个答案:

答案 0 :(得分:38)

您正在Razor @区块或ASPX <%: %>区块中调用帮助程序。
这些构造会自动转义它们的输出。

您需要更改帮助程序才能返回HtmlString,这不会被转义:

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