本文包含下列 ASP.NET 內嵌表達式的簡介:
- <% ... %>
- <%= ... %>
- <%@ ... %>
- <%# ... %>
- <%$ ... %>
- <%-- ... --%>
原始產品版本: .NET Framework
原始 KB 編號: 976112
<% ... %> 內嵌程式代碼區塊
內嵌程式代碼區塊可用來保留與傳統 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 網頁中內嵌程式代碼區塊的詳細資訊,請流覽 ASP.NET Web Form Pages 中的內嵌程式代碼區塊。
<%= ... %> 顯示表示式
顯示 <%= ... %>
表達式相當於只包含語句的 Response.Write(...)
內嵌程式代碼區塊。 這是顯示資訊的最簡單方式,例如單一字串、int 變數或常數。
例如,下列範例程式代碼會顯示目前的時間:
<%@ Page Language="VB" %>
<html>
<body>
<form id="form1" runat="server">
<%=DateTime.Now.ToString() %>
</form>
</body>
</html>
請記住,顯示表示式不能用於伺服器控件的屬性。 這是因為 .NET Framework 會直接編譯整個表達式,而不是將內容顯示為 屬性的值。
如需如何從 ASP.NET 顯示資訊的詳細資訊,請流覽 從 ASP.NET 顯示。
<%@ ... %> 指示詞表示式
指示詞表達式是語法,指定頁面和使用者控件編譯程式 ASP.NET 在處理網頁窗體 (.aspx) 頁面和使用者控件 (.ascx) 檔案時所使用的設定。
ASP.NET 頁面架構支援下列指示詞:
指示詞 | 描述 |
---|---|
@ Page |
定義 ASP.NET 頁面剖析器和編譯程式所使用的頁面特定屬性。 只能包含在.aspx檔案中。 此指示詞名稱只能在網頁窗體頁面 ASP.NET 使用。 |
@ Control |
定義 ASP.NET 頁面剖析器和編譯程式所使用的控件特定屬性。 只能包含在 .ascx 檔案中(使用者控件)。 指示詞名稱只能在使用者控件檔案中使用。 |
@ Import |
將命名空間明確匯入頁面或使用者控制項。 |
@ Implements |
以宣告方式表示頁面或使用者控件會實作指定的 .NET Framework 介面。 |
@ Register |
將別名與命名空間和類別名稱產生關聯。 這可讓使用者控制項和自訂伺服器控制件在要求的頁面或使用者控制項中包含時轉譯。 |
@ Assembly |
在編譯期間將元件連結至目前頁面。 它讓所有元件的類別和介面都可供在頁面上使用。 |
@ Master |
識別 ASP.NET 主版頁面。 |
@ WebHandler |
識別 ASP.NET IHttpHandler 頁面。 |
@ PreviousPageType |
提供透過 PreviousPage 屬性存取之上一頁的強式輸入方式。 |
@ MasterType |
將類別名稱指派給 ASP.NET 頁面的 Master 屬性。 提供方法來建立 ASP.NET 主版頁面的強型別參考。 |
@ OutputCache |
以宣告方式控制頁面或使用者控件的輸出快取原則。 |
@ Reference |
以宣告方式將頁面或使用者控件連結至目前頁面或使用者控件。 |
如需指示詞語法的詳細資訊,請瀏覽 文字範本指示詞語法。
<%# ... %> 資料系結運算式
當呼叫此伺服器控制元件的 DataBind 方法時,數據系結運算式會在呼叫此伺服器控制件的 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>
如需數據系結表達式語法的詳細資訊,請瀏覽 數據系結表達式語法。
<%$ ... %> 表示式產生器
表達式產生器是用來根據應用程式組態或資源檔中包含的信息來設定控件屬性的值。 下列範例是表達式產生器的基本語法:
<%$ Expression Prefix: Expression Value %>
貨幣符號 ($) 表示 ASP.NET 下列表示式是表達式產生器。 表示式前置詞會定義表示式的類型,例如 AppSettings
、 ConnectionStrings
或 Resources
。 此外,您可以建立及定義自己的運算式產生器。 冒號之後的表達式值(:)是 ASP.NET 實際使用做為特定屬性的值。
下列示範示範如何使用表達式產生器,從 AppSettings
Web.config 檔案中的節點取得網站的著作權,以及如何將著作權資訊設定為 Literal 的 Text 屬性的值。
AppSettings
Web.config 檔案中的節點:
<appSettings>
<add key="copyright" value="(c) Copyright 2009 WebSiteName.com"/>
</appSettings>
ASP.NET 網頁中的運算式產生器:
<div id="footer">
<asp:Literal ID="Literal1" runat="server" Text="<%$ AppSettings: copyright %>"></asp:Literal>
</div>
如需 ASP.NET 表達式的詳細資訊,請流覽 ASP.NET 表達式概觀。
<%-- ... -- %> 伺服器端批注區塊
伺服器端批注區塊可讓開發人員將程式代碼批注內嵌在 ASP.NET 網頁網頁的 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>
如需伺服器端批註的詳細資訊,請瀏覽 伺服器端批注。