2011-11-20 108 views
15

所以在.NET中,我們有.......NET「代碼塊塊」?

<%= 

<%: (new to .NET 4 - syntactic sugar for HTML encoding) 

<%# 

<%@ 

究竟這些是什麼?

還有更多嗎?是否有詳盡的清單以及它們在哪裏?很難知道甚至可以搜索什麼 - 當我發現<%時,我甚至都沒有聽說過「代碼塊塊」這個詞。

回答

9

這些<%@是指令。有關詳盡的清單和文檔,請參閱MSDN

使用時,指令可以在任何地方在.aspx位於或.ASCX 文件,但標準的做法是將它們包括在 文件開頭。每個指令都可以包含特定於該指令的一個或多個屬性(配對值爲 )。

<%是腳本塊。這裏是MSDN

嵌入代碼塊一個很好的說明是,在頁面的 呈現階段執行服務器代碼。塊中的代碼可以在當前頁面類中執行編程 語句和調用函數。

<%#塊通常在綁定控件中使用。請參閱此短文article瞭解更多信息。

2

我不知道如果這些web窗體標籤有一個適當的總稱,但他們都應該在ASP.NET Page Syntax覆蓋。

還有另外一個,這不是在名單上,ASP.NET Expressions

<%$ expressionPrefix: expressionValue %> 
8

他們被稱爲代碼掘金。它們提供關於如何處理這些符號中的聲明(<%%>)ASP.NET框架指令。在我知道它的名字之前,是的,在社區中詢問它有點困難。不知道一個「詳盡的名單中,但也有一對夫婦更比你雖然規定。以下是其他代碼塊的列表及其用法和示例示例。

符號 - 名稱 - 說明 - 如(格式)


<% - 標準代碼金塊 - 表示下面的語句是C#語句。將不得不遵循C#語法規則。例如。

<% string[] cities = { ""London"", ""New York"", ""Paris"" }; 
string myCity = cities[new Random().Next(cities.Length)]; 
Response.Write(myCity);%> 

<%= --Content代碼塊 - 標準CN類似,不同之處返回的結果被直接插入響應於所述瀏覽器,而不必使用Response.Write。例如。

<%=textBox.Text%> 

(不推薦,包括html注入攻擊的風險。如果文本框上的輸入類似於「< button type = submit > Submit</button >」,它將在頁面上添加一個按鈕。當然會有驗證,但希望點是清楚的。)


<%: --Encoded代碼塊--Similar到<%=,但響應HTML編碼。例如。 Name is <%:textBox.Text%> (無論輸入的文本框,它顯示出來。如果輸入的是一樣的東西「< button type = submit > Submit</button >」,輸出將是「名稱是<button type = submit> Submit</button>」。


<%# - 數據綁定代碼熔核--Denotes數據綁定代碼塊,用來指當前的數據對象僅可用與像中繼器等

<%#: --Encoded數據綁定數據綁定控件 - 表示的編碼數據綁定代碼塊,其中數據綁定值被編碼,例如:

<asp:Repeater ItemType = ""System.String"" SelectMethod = ""GetCities"" runat = ""server"> 
<ItemTemplate> 
<li > <%# Item % > </li> 
</ItemTemplate> 
</asp:Repeater> 

(如編碼(<%#:)時,它會顯示文字無解釋,推薦。)」


<%$ --property代碼塊 - 用以指配置值,例如那些定義在Web.config中。

<asp:Literal Text = " < %$ AppSettings: cityMessage % > " runat = "server" /> 

(檢索從配置文件cityMessage鍵的值。)


<%@ --Page指令 - 這是用來配置Web窗體(或控制或母版頁,這取決於在那種指令。例如,

<%@ Page.. <%@ Master 

所有上述信息和電子商務xamples來自Adam Freeman的Pro ASP .NET 4.5書,第12章。優秀的書imo。