我一直在经历并将我的项目转换为使用<%:
而不是<%=
语法,并且很恼火我也必须Html.Encode(zoozle)
在整个地方删除。如果它留在原地,zoozle
将被双重编码。
这让我想知道,为什么不Html.Encode
返回HtmlString
,这样它就不会再次被编码<%:
?
我一直在经历并将我的项目转换为使用<%:
而不是<%=
语法,并且很恼火我也必须Html.Encode(zoozle)
在整个地方删除。如果它留在原地,zoozle
将被双重编码。
这让我想知道,为什么不Html.Encode
返回HtmlString
,这样它就不会再次被编码<%:
?
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