为什么html.encode不返回HtmlString

时间:2011-01-05 23:18:16

标签: asp.net-mvc-2 mvchtmlstring

我一直在浏览并转换我的项目以使用<%:而不是<%=语法,并且我也不得不删除所有地方的Html.Encode(zoozle) 。如果它保持不变,zoozle将被双重编码。

这让我感到疑惑,为什么Html.Encode没有返回HtmlString,所以它不会被<%:再次编码?

1 个答案:

答案 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