2008-10-01 171 views
10

請原諒我的ASP無知,但有什麼區別?而數據綁定<%# %>和<%= %>有什麼區別?

+0

可能重複[<%#和<%=開始標記之間有什麼區別?](http://stackoverflow.com/questions/100853/what-is-the-difference-between-在和開標籤) – 2012-07-24 01:07:03

+0

http://stackoverflow.com/questions/100853/what-is-the-difference-between-the-and-opening-tags – 2008-10-01 23:55:54

回答

17

這些稍微非正式地稱爲「蜂蜇」。有4種類型:

<%# %>在數據綁定階段被調用。

<%= %>用於獲取從代碼值到UI層。意味着與ASP應用程序的向後兼容性。不應該在.NET中使用。

<%@ %>表示directives和允許的行爲不訴諸代碼進行設置。

<%: %>(在ASP.NET 4中引入)與%=相同,但具有HtmlEncoding輸出的附加功能。其目的是作爲默認的使用(超過%=)來幫助屏蔽腳本注入攻擊。

指令指定由該頁面和用戶控制 編譯器使用時,編譯器處理 ASP.NET Web窗體頁(.aspx文件) 和用戶控件(.ascx)文件設置。

ASP.NET對待任何指令塊 (<%@%>),其不包含 明確指示名稱作爲@頁 指令(一個頁面)或作爲@ 控制指令(用於用戶 控制)。

@Esteban - 爲指令添加了msdn鏈接。如果你需要...更多的解釋,請讓我知道。

2

的#版本使用。 <%=僅僅是一個簡單的Response.Write

2

不完全相關的問題,有一個在asp.net稱爲表達式生成器另一個相關的符號:

<asp:SqlDataSource ... Runat="server" 
ConnectionString="<%$ ConnectionStrings:Northwind %>" 
/> 

<asp:Literal Runat="server" 
    Text="<%$ Resources:MyResources, MyText %>" 
/> 

,它是可擴展的,看到的.aspx http://msdn.microsoft.com/en-us/magazine/cc163849.aspx#S4

0

的JavaScript使用一個母版頁。

var e = document.getElementById('<%= lblDescription.ClientID %>'); 
e.innerHTML = 'getElementById(\'lblDescription\') will be null'; 
相關問題