我是ASP.NET MVC的新手。我已经看到<%= ...%> 和<%:...%> 。我熟悉经典ASP时代的第一个,但不熟悉后者。这两者有什么区别?
答案 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了解更多详情。