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

时间:2010-07-29 21:16:52

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

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

3 个答案:

答案 0 :(得分:19)

<%: %>a new thing in ASP.NET MVC 2。它与<%= Html.Encode("Text") %>相同。建议始终使用<%: %>,除非您有某些特定原因不这样做(例如,您正在从已编码的某个文件或数据库中呈现数据)。

答案 1 :(得分:6)

区别在于:

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

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

More details here

答案 2 :(得分:6)

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

我相信ASP.NET 4商店应该倾向于强制执行&lt;%:%&gt;按政策。

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