本文包含以下 ASP.NET 內聯運算式的介紹:
- <% ... %>
- <%= ... %>
- <%@ ... %>
- <%# ... %>
- <%$ ... %>
- <%-- ... %>
- <%@ ... %>
<%...%> 嵌入式代碼塊
嵌入式的代碼塊用於保留使用傳統的 ASP 向後相容性。塊中的代碼可以執行編程語句,並在頁呈現階段中在當前頁類中調用函數。
下面的樣本示範一個 ASP.NET 頁,它有樣本嵌入式的代碼塊顯示迴圈的結果中的 Microsoft Visual Basic.net 代碼:
<%@ Page Language="VB" %><html><body> <form id="form1" runat="server"> <% For i As Integer = 16 To 24 Step 2%> <div style="font-size: <% Response.Write(i)%>"> Hello World<br /> </div> <% Next%> </form></body></html>
一個嵌入式的代碼塊始終與 HTML 源混合的因為它是很難閱讀和維護這些開發人員。
有關在 ASP.NET 網頁中的嵌入式的代碼塊的詳細資料,請訪問下面的 Microsoft 開發人員網路 (MSDN) 的網站:
http://msdn.microsoft.com/en-us/library/ms178135.aspx回到頂端<%=...%> 顯示運算式
在 < %=...%> 顯示運算式是包含僅 Response.Write(…) 語句的嵌入式的代碼塊的等效。這是最簡單的方式顯示資訊 (如單個字串、 一個 int 變數或常數。
例如對於下面的程式碼範例顯示目前時間:
<%@ Page Language="VB" %><html><body> <form id="form1" runat="server"> <%=DateTime.Now.ToString() %> </form></body></html>
請記住顯示運算式中不能使用伺服器控制項的屬性。這是因為在.net Framework 直接編譯而不是顯示內容的屬性值,該值作為在整個運算式。
有關如何顯示 ASP.NET 中的資訊的詳細資料請訪問下面的 MSDN 網站:
http://msdn.microsoft.com/en-us/library/6dwsdcf5.aspx回到頂端<%@...%> 指令的運算式
指令的運算式是用於指定頁和使用者控制項編譯器時使用它們處理 ASP.NET Web Form (.aspx) 頁和使用者控制項 (.ascx) 檔案設定的文法。
在 ASP.NET 頁架構支援以下指令:
@ Page |
定義 ASP.NET 頁分析器和編譯器所使用的特定於頁的屬性。可以包含僅在.aspx 檔案中。 * 僅在 ASP.NET Web Form頁中,可以使用此指令的名稱。 |
@ 控制項 |
定義 ASP.NET 頁分析器和編譯器所使用的特定於控制項的屬性。可以包含僅在.ascx 檔案 (使用者控制項) 中。 * 此指令的名稱,可僅在使用者控制檔案。 |
@ 匯入 |
將命名空間顯式匯入到頁或使用者控制項中。 |
@ 實現 |
以聲明方式指示一個頁或使用者控制項實現指定的.net 架構介面。 |
@ 註冊 |
將關聯的別名與命名空間和類名。這使使用者控制項和自訂伺服器控制項能夠在呈現時它們包含在所請求的頁或使用者控制項。 |
@ 程式集 |
在編譯過程中,將程式集連結到當前頁。它使該程式集的所有類和介面可用於在頁上。 |
@ Master |
標識 ASP.NET 主版頁面。 |
@ WebHandler |
標識一個 ASP.NET IHttpHandler 頁。 |
@ PreviousPageType |
提供了一種方法來擷取對前一頁強型別,如通過 PreviousPage 屬性訪問。 |
@ MasterType |
將一個類名稱分配給 主 屬性的 ASP.NET 頁。 提供了一種建立 ASP.NET 主版頁面的強型別的引用的方法。 |
@ OutputCache |
以聲明方式控制輸出緩衝策略或使用者控制項的頁面。 |
@ 引用 |
以聲明方式連結到當前頁或使用者控制項的頁或使用者控制項。 |
指令文法的詳細資料,請訪問下面的 MSDN 網站:
http://msdn.microsoft.com/en-us/library/xz702w3e.aspx回到頂端<%#...%> 資料繫結運算式
在頁上調用此伺服器控制項的控制項的 DataBind 方法時,資料繫結運算式建立伺服器控制項屬性與資料來源之間的綁定。
下面的樣本示範如何使用資料繫結運算式的函數的字串綁定到標籤的 Text 屬性:
<%@ Page Language="VB" %><script runat="server"> Protected Function SayHello() As String Return "Hello World" End Function Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) lblHello.DataBind() End Sub</script><html><body> <form id="form1" runat="server"> <asp:Label ID="lblHello" runat="server" Text="<%# SayHello%>"></asp:Label> </form></body></html>
有關資料繫結運算式文法的詳細資料,請訪問下面的 MSDN 網站:
http://msdn.microsoft.com/en-us/library/bda9bbfx.aspx回到頂端<%$...%> 運算式產生器
若要設定基於應用程式的配置或資源檔中包含的資訊的控制項屬性的值使用運算式產生器。以下是運算式產生器的基本文法:
< %$ 運算式首碼: 運算式 %> 值
貨幣符號 ($) 指示 ASP.NET 下面的運算式是對錶達式產生器。運算式首碼定義如 AppSettings、ConnectionStrings,或 資源 這樣的運算式的類型。此外,您可以建立和定義您自己的運算式產生器。跟冒號後面的運算式值 (:) 是什麼 ASP.NET 將實際使用的某些屬性的值。
下面示範顯示了如何使用運算式產生器來從 AppSettings 節點在 Web.config 檔案中擷取 Web 網站的著作權和如何再將著作權資訊設定為文本的 文本 屬性的值。
在 Web.config 檔案中的 AppSettings 節點:
<appSettings> <add key="copyright" value="(c) Copyright 2009 WebSiteName.com"/></appSettings>
運算式產生器,在 ASP.NET Web Form頁中的:
<div id="footer"> <asp:Literal ID="Literal1" runat="server" Text="<%$ AppSettings: copyright %>"></asp:Literal></div>
有關 ASP.NET 運算式的詳細資料,請訪問下面的 MSDN 網站:
http://msdn.microsoft.com/en-us/library/d5bd1tad.aspx回到頂端<-%-...--%> 伺服器端註解區塊
伺服器端註解區塊允許開發人員在任何位置的 ASP.NET Web Form頁的 HTML 源的內嵌程式碼注釋 (在 <script>代碼塊中除外)。將不在伺服器上處理伺服器端註解區塊的開始和結束標記之間的任何內容,或為所產生的頁面上呈現。
下面的程式碼範例示範如何在 ASP.NET 頁中使用伺服器端註解區塊:
<%@ Page Language="VB" %><script runat="server"> Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Dim strName As String strName = Session("userName") lblUserName.Text = strName End Sub</script><html><body> <form id="form1" runat="server"> <%-- Label for UserName --%> <asp:Label ID="lblUserName" runat="server" Text=""></asp:Label> </form></body></html>
伺服器端注釋有關的詳細資料,請訪問下面的 MSDN 網站:
http://msdn.microsoft.com/en-us/library/4acf8afk.aspx