你能否区分ASP.NET表达式中的<%= %>,<%# %>和<%$ %>有什么不同?

11
你能否简单列举一下<%= %><%# %><%$ %>之间的区别,并给出一个只需要使用其中一个表达式的简单示例呢?

你有阅读文档吗?如果我没记错的话,文档对这个主题非常明确。 - Thomas Levesque
1
我希望VS能够通过智能感知或工具提示提供更多关于这些内容的指导。 - Greg
相关(重复?):在ASP.NET控件中何时应该使用#和=? - Peter Mortensen
1个回答

22

<% %>

<% this.CallMethod() %> - 基本代码块,执行其中的语句。


<%= %>

<%= "text" %> - 嵌入代码语法。与写作<% Response.Write("text") %>相同。


<%: %>

<%: "text" %> - 与上面的代码相同,只是它是 <%= Server.HtmlEncode("text") %> 的简写。这是 在ASP.NET 4中引入 并且是默认使用的语法。


<%# %>

<%# Eval("ColumnName") %> - 用于 数据绑定


<%$ %>

<%$ AppSettings: settingName %> - 表达式语法有一个前缀,例如AppSettings, ConnectionStrings, 或者 Resources ,然后是一个冒号和实际的表达式。它可以用作访问资源的内联快捷方式。您甚至可以创建自己的语法(感谢@Thomas Levesque)。此外,请参考MSDN以获取更多信息。


<%@ %>

<%@ Page language="C#" %> - 指令语法,用于页面/控件设置。


<%-- --%>

<%-- 这是一个注释 --%> - 服务器端注释 语法。这与 HTML 的 <!-- 注释 --> 语法不同,它不会在输出中呈现。


3
值得注意的是,您可以为<%$ %>创建自己的表达式语法扩展,尽管该功能没有得到很好的文档记录。 - Thomas Levesque
@Thomas - 我找到了一篇很棒的文章和关于自定义表达式的MSDN信息(更新了我的帖子)。你打开了一个全新的世界! - TheCloudlessSky
我们已经使用了这个 http://weblogs.asp.net/infinitiesloop/archive/2006/08/09/The-CodeExpressionBuilder.aspx 表达式生成器多年了,它允许您放入任何喜欢的代码 :) - Richard Friend

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