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

Chr*_*ens 10 .net asp.net tags asp.net-mvc

我无法在任何地方找到这些信息.可能是因为谷歌忽略了关键词.使用<%:<%=在您的aspx页面之间有区别吗?他们似乎可以互换.

ntc*_*nel 19

<%: %>ASP.NET MVC 2中的新东西.它是一样的<%= Html.Encode("Text") %>.<%: %>除非您有某些特定原因不这样做,否则建议始终使用(例如,您正在从已编码的某个文件或数据库中呈现数据).


Sht*_*ong 6

不同之处是:

<%= "my <text>" %>将输出my <text>,这是不正确的HTML

<%: "my <text>" %>将输出my &lt;text&gt;,这是更好的

更多细节在这里


kbr*_*ton 6

@ntcolonel是对的钱.此外,对于您的数据已经编码的情况,请使用任何实现方式提供IHtmlString.这可以防止双重编码,并允许您始终使用<%: %>.

我相信ASP.NET 4商店应该倾向于通过策略强制执行<%:%>.

此外,新语法通常适用于ASP.NET 4; 不一定只是MVC,这对WebForms开发人员来说是个好消息.