在<%中是什么意思是":",与<%=有什么区别?

Fab*_*ano 8 .net asp.net asp.net-mvc asp.net-mvc-2

在ASP.NET MVC 2 <%:标签中引入了替换<%=Html助手.但这意味着什么,与前一个有什么不同?我应该<%=何时使用<%:

谢谢

Joe*_*ips 14

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

正如Richard在下面所说,它还可以确定字符串是否不需要根据它是否实现IHtmlString接口进行编码.

  • 如果表达式的类型实现了`IHtmlString`接口,它还提供了避免HTML Encode的功能 - 因此执行自己编码的类型不需要特殊处理. (2认同)

Jon*_*eet 8

IIRC,<%:自动提供HTML编码,因此您无需自己动手.

来自Scott Guthrie的博文:

在ASP.NET 4中,我们引入了一种新的代码表达式语法(<%: %>),<%= %>它可以像块一样呈现输出- 但在执行此操作之前,它还会自动对HTML进行编码.

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