2010-04-13 100 views
7

可能重复:
ASP.NET “special” tags<%# %> VS <%= %>

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

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

这些标签有一个名字吗?

+1

就术语而言,我认为他们被称为内联表达式 – AaronLS 2010-04-13 21:34:12

回答

8

<%= ... %>通常等同于Response.Write(...) 它不能用于runat =“server”的控制属性中

<%: ... %>(自.NET v4起。0)是<%= %>一个HTML编码的版本(如@Eric提及)

<%# ... %>用于在绑定,评估和演示或输出(如@Ray提及)

<%$ ... %>数据绑定上下文中的上下文中使用一个控制属性与runat =“服务器”(谷歌“表达式生成器”也有一个在通用的目的'Code' expression builder。它是评估当属性/参数是由控制要求

5

<%#%>将尝试使用Bind()函数将数据绑定到数据源。这使它成为一种双向功能(读取和写入)。

<%=%>将使数据为只读。

+2

另外<%= %>可以打印任何中间的块,其中<% %>只是执行那些语句 – Jimmy 2010-04-13 21:29:43

+2

而现在我们也有<%: %>用于html编码输出。 – 2010-04-13 21:30:54

1

<%#%>可以仅用于数据绑定上下文中的

<%=%>预计将包含在输出流中的字符串值。所以无论是一个字符串变量或一个返回字符串的方法。其他任何事情都会导致错误。

4

<%#%>在数据绑定期间被评估。它不一定需要Eval()或Bind(),Matthew建议 - 我经常使用它来在中继器控件中显示纯文本。

<%=%>被评估为页面呈现。这相当于调用Response.Write()。

+0

+1我正要问另一个关于“什么时候”每个评估的答案。 – AaronLS 2010-04-13 21:37:19

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