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

时间:2010-06-22 01:33:20

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

我是ASP.NET MVC的新手。我已经看到<%= ...%> <%:...%> 。我熟悉经典ASP时代的第一个,但不熟悉后者。这两者有什么区别?

3 个答案:

答案 0 :(得分:11)

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

<% %> - 代表一个代码块,if,then else,代表每个等等。

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

Link to video解释快捷方式(这是一个简短的剪辑):

答案 1 :(得分:4)

使用&lt;%:告诉ASP.NET 4.0对显示的值执行Server.HtmlEncode()。
使用&lt;%=,开发人员可以使用Server.HtmlEncode() 注意HtmlEncode()有助于消除跨脚本攻击。

有关详细信息,请参阅ScottGu的帖子here

答案 2 :(得分:1)

&lt;%:expression%&gt;是一个HTML编码表达式,并在ASP.NET 4中引入

相当于&lt;%= HttpUtility.HtmlEncode(expression)%&gt;

转到here了解更多详情。