2010-08-25 227 views

回答

14

在ASP.NET 4 <%: xyz %>语法会做同样的事情,在<%= Server.HtmlEncode(xyz) %>以前的版本一样。这只是一个捷径,因为它经常使用。

正如Richard在下面所说的那样,它也可以根据是否实现IHtmlString接口来确定是否不需要对字符串进行编码。

+2

它还提供了避免HTML编码,如果表达式的类型实现了'IHtmlString'接口 - 那么做自己编码的类型不需要特殊的处理。 – Richard 2010-08-25 15:18:51

8

IIRC,<%:自动提供HTML编码,所以你不必自己做。

Scott Guthrie's blog post

在ASP.NET 4中,我们引入了一个新 代码表达式语法(<%: %>) 呈现像<%= %>块 输出做 - 但也自动HTML 做之前对其进行编码所以。

阅读博客文章了解更多详情。

3

<%=直接注入值,而<%:自动转义所有可怕的特殊字符给你。

换句话说,

<%: myString %>

相同

<%= Server.HtmlEncode(myString) %>