2010-04-13 154 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 --%>