<%:中的“:”是什么意思,与<%=有什么区别?

时间:2010-08-25 14:56:49

标签: .net asp.net asp.net-mvc asp.net-mvc-2

在ASP.NET MVC中引入了<%:标记来替换Html帮助程序的<%=。但这意味着什么,与前一个有什么不同?我应该何时使用<%=和何时<%:

谢谢

3 个答案:

答案 0 :(得分:14)

在ASP.NET 4中,<%: xyz %>语法将与<%= Server.HtmlEncode(xyz) %>在先前版本中执行的操作相同。它只是一种捷径,因为它经常被使用。

正如Richard在下文所述,它还可以确定是否需要根据字符串是否实现IHtmlString接口来编码字符串。

答案 1 :(得分:8)

IIRC,<%:会自动提供HTML编码,因此您无需亲自动手。

来自Scott Guthrie's blog post

  

使用ASP.NET 4,我们将介绍一个   新代码表达式语法(<%: %>)   它会像<%= %>块一样呈现输出   做 - 但也自动HTML   在这样做之前编码它。

阅读博客文章了解更多细节。

答案 2 :(得分:3)

&lt;%=直接注入值而&lt;%:自动为您逃脱所有可怕的特殊字符。

换句话说,

<%: myString %>

相同

<%= Server.HtmlEncode(myString) %>