【发布时间】:2011-04-03 18:58:33
【问题描述】:
在 ASP.NET MVC 2 中,引入了 <%: 标签来替换 Html 助手的 <%=。但它是什么意思,与前一个有什么区别?我应该什么时候使用<%=,什么时候使用<%:?
谢谢
【问题讨论】:
标签: .net asp.net asp.net-mvc asp.net-mvc-2
在 ASP.NET MVC 2 中,引入了 <%: 标签来替换 Html 助手的 <%=。但它是什么意思,与前一个有什么区别?我应该什么时候使用<%=,什么时候使用<%:?
谢谢
【问题讨论】:
标签: .net asp.net asp.net-mvc asp.net-mvc-2
IIRC,<%: 自动提供 HTML 编码,所以你不需要自己做。
在 ASP.NET 4 中,我们引入了一个 新的代码表达式语法 (
<%: %>) 呈现像<%= %>块这样的输出 做——但它也会自动生成 HTML 在这样做之前对其进行编码。
阅读博文了解更多详情。
【讨论】:
换句话说,
<%: myString %>
与
相同<%= Server.HtmlEncode(myString) %>
【讨论】:
在 ASP.NET 4 中,<%: xyz %> 语法的作用与以前版本中的 <%= Server.HtmlEncode(xyz) %> 相同。它只是一个快捷方式,因为它经常被使用。
如下Richard所说,它还可以根据是否实现IHtmlString接口来判断一个字符串是否需要编码。
【讨论】:
IHtmlString 接口,它还提供了避免 HTML 编码的功能——因此进行自己编码的类型不需要特殊处理。