我一直在浏览并转换我的项目以使用<%:
而不是<%=
语法,并且我也不得不删除所有地方的Html.Encode(zoozle)
。如果它保持不变,zoozle
将被双重编码。
这让我感到疑惑,为什么Html.Encode
没有返回HtmlString
,所以它不会被<%:
再次编码?
答案 0 :(得分:1)
HtmlString是.NET 4.0框架中引入的新类。 HtmlEncode方法位于自.NET 1.1以来的HttpServerUtility类中。 Microsoft可能没有更改它,以免破坏依赖此方法返回字符串的所有先前实现。它们不能超载它,因为你不能仅仅在方法的返回类型上过载。
Phil Haacked有一个正则表达式,可用于替换Html.Encode的所有实例。 http://haacked.com/archive/2010/04/29/replacing-html-encode.aspx