在ASP.NET MVC中,<%=和<%:?有什么区别?

4
我是一个新手,刚开始学习ASP.NET MVC。我看到了<%= ... %><%: ... %>两种写法。我熟悉第一种,因为在经典ASP时代已经使用过,但不知道后者的用法。这两种写法之间有什么区别呢?
3个回答

11

<%= %> - 相当于 classic ASP 中的 response.write。

<% %> - 表示一个代码块,例如 if、then、else、for each 等。

<%: %> - 这是 .NET 4 中的一种新快捷方式,表示 <%= html.encode(item) %>

视频链接 说明了这个快捷方式(一个短视频):


4
使用<%:告诉ASP.NET 4.0对显示的值执行Server.HtmlEncode()。
而使用<%=,则由开发人员决定是否使用Server.HtmlEncode()。
注意HtmlEncode()有助于避免跨站脚本攻击。
有关更多信息,请参见ScottGu的帖子这里

1

<%:expression %> 是一个HTML编码的表达式,它是在ASP.NET 4中引入的。

它相当于 <%= HttpUtility.HtmlEncode(expression) %>

点击这里了解更多详情。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接