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

10

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

3个回答

19
<%: %> 是 ASP.NET MVC 2 中的新语法,它与 <%= Html.Encode("Text") %> 的作用相同。推荐始终使用 <%: %>,除非你有特定的理由不这样做(例如,你正在呈现已经被编码的来自某个文件或数据库的数据)。

这个语法在Razor中有等效形式吗? - Mathias Lykkegaard Lorenzen

6
区别在于: <%= "my <text>" %> 输出的是不正确的HTML格式的 my <text><%: "my <text>" %> 输出的是更好的 my &lt;text&gt;更多细节请参见此处

6

@ntcolonel说得很对。此外,如果您的数据已经被编码,请使用实现IHtmlString的任何内容来提供它。这可以防止双重编码,并允许您始终使用<%: %>

我认为ASP.NET 4商店应该通过政策倾向于强制使用<%: %>

此外,新的语法适用于ASP.NET 4总体,而不仅仅是MVC,这对于WebForms开发人员来说是个好消息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接