可能重复:
ASP.NET “special” tags
<%# ... %>
,<%= ... %>
和<%$ ... %>
之间有什么区别?
我找不到任何关于此的信息。使用搜索引擎找不到“&lt;%=”是不可能的。
这些标签有名称吗?
答案 0 :(得分:8)
<%= ... %>
通常等同于Response.Write(...)
它不能在runat =“server”的控制属性中使用
<%: ... %>
(从.NET v4.0开始)是<%= %>
的html编码版本(如@Eric提及)
<%# ... %>
用于Bind,Eval或Output的数据绑定上下文(如@Ray提及)
<%$ ... %>
用于runat =“server”的控制属性的上下文中(google“表达式构建器”也可以查看制作通用目的'Code' expression builder。它会在属性时进行评估/控件需要参数。
答案 1 :(得分:5)
&lt;%#%&gt;将尝试使用Bind()函数数据绑定到数据源。这使它成为双向函数(读写)。
&lt;%=%&gt;将数据设为只读。
答案 2 :(得分:4)
&lt;%#%&gt;在数据绑定期间进行评估。它不一定需要Eval()或Bind()和Matthew建议 - 我经常使用它来在转发器控件中显示纯文本。
&lt;%=%&gt;被评估为页面渲染。它等同于调用Response.Write()。
答案 3 :(得分:1)
&lt;%#%&gt; 仅可用于数据绑定上下文。
&lt;%=%&gt;需要一个字符串值,然后它将包含在输出流中。所以要么是字符串变量,要么是返回字符串的方法。其他任何事都会导致错误。
答案 4 :(得分:0)
我找到了一些很好的信息,澄清了未来谷歌搜索的术语:
http://authors.aspalliance.com/aspxtreme/aspnet/syntax/aspnetpagesyntax.aspx
代码渲染块:
<% inline code %>
HttpResponse.Write的快捷方式:
<%=inline expression %>
数据绑定表达式:
<%# databinding expression %>
在房产中:
<tagprefix:tagname property = "<%# databinding expression %>" runat="server" />
服务器端评论,这样他们就不会出现在客户端的页面来源中:
<%-- commented out code or content --%>