这是一个重复的问题:ASP.NET“特殊”标签。
我找不到任何关于这个的信息。使用搜索引擎无法找到“<%=”。
这些标签有名称吗?
<%# ... %>
、<%= ... %>
和<%$ ... %>
有什么区别?我找不到任何关于这个的信息。使用搜索引擎无法找到“<%=”。
这些标签有名称吗?
<%# ... %>
、<%= ... %>
和<%$ ... %>
有什么区别?<%= ... %>
通常等价于Response.Write(...),但不能在runat="server"的控件属性中使用。
<%: ... %>
(自.NET v4.0起)是<%= %>
的HTML编码版本(如@Eric所述)。
<%# ... %>
用于数据绑定上下文中的Bind、Eval或Output(如@Ray所述)。
<%$ ... %>
用于具有runat="server"的控件属性的上下文中(谷歌“表达式生成器”也可以查看制作一个通用的'Code'表达式生成器。当控件需要该属性/参数时,它将被评估。
<%# %>将尝试使用Bind()函数绑定到数据源,这使其成为双向功能(读和写)。
<%= %>将使数据只读。
<%# %> 在数据绑定时被计算。它不一定需要使用 Eval() 或 Bind(),Matthew 建议 - 我经常使用它来在 Repeater 控件中显示纯文本。
<%= %> 在页面渲染时被计算。等效于调用 Response.Write()。
<%# %> 只能在数据绑定上下文中使用。
<%= %> 期望一个字符串值,然后将其包含在输出流中。因此,只能使用字符串变量或返回字符串的方法。其他任何内容都会导致错误。
我找到了一些很好的信息,可以澄清术语,方便你在未来进行谷歌搜索:
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 --%>