<%#%> vs<%=%>

时间:2010-04-13 21:25:15

标签: asp.net

  

可能重复:
  ASP.NET “special” tags

<%# ... %><%= ... %><%$ ... %>之间有什么区别?

我找不到任何关于此的信息。使用搜索引擎找不到“&lt;%=”是不可能的。

这些标签有名称吗?

5 个答案:

答案 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 --%>