.NET Framework 3.0 簡介 / 主頁概述
主頁首次在 .NET Framework 2.0 中引入,用於建立多個檔案具有相似內容的應用程式。主頁建立的內容包括標題、頁尾等。對於所有頁面都具有公共標題的網站,確保在每個頁面的程式碼中插入相同的標題並確保文字對齊等方面的一致性既困難又繁瑣。為了克服這一缺陷,我們使用主頁。在 .NET 1.1 中,級聯樣式表用於執行此功能。然而,在 .NET 3.0 中,這些樣式表被主頁取代。
用於表示主頁的語法為
<%@ Master Language="C#" %>
<%@ Master Language="C#" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
這指定了該頁面是一個主頁,並在頁面的開頭給出。
從主頁繼承內容的 ASP.NET 頁面在其中包含以下標籤。
<%@ Page Language="VB" MainPageFile="~/MainPages/Master1.main" Title="Content Page" %>
- 建立新專案
- 將主頁新增到專案。可以透過單擊“新增新專案”並從顯示的專案列表中選擇“主頁”來完成此操作。
- 開啟主頁,並在 ContentPlace Holder 物件正上方輸入要顯示的內容。
- 右鍵單擊專案並單擊“新增新專案”。選擇“網頁”並選中“選擇主頁”選項,然後單擊“確定”。將顯示專案資料夾對話方塊。從顯示的檔案列表中選擇主頁檔案 (.master),然後單擊“確定”。檔案將被建立,您會注意到預設情況下會建立“內容”物件。此標籤是在選擇主頁時建立的。如果頁面中不需要任何主頁,則可以刪除此標籤。
- 執行該檔案。您會注意到,在主頁檔案中的 ContentPlaceHolder 頂部指定的內容將出現在網頁上。
也可以將一個主頁巢狀在另一個主頁中。設計器不支援主頁巢狀;然而,兩個或多個主頁可以在程式碼級別巢狀。
SiteMaster 頁面完全由 Content 控制元件組成。
<asp:contentplaceholder id="SiteContentPlaceHolder" runat="server"> <h1>Site Master Page</h1></asp:contentplaceholder>
部分主頁從網站主頁繼承。下面給出了網站主頁的語法。
<asp:contentplaceholder id="SiteContentPlaceHolder" runat="server"> <h1>Site Master Page</h1></asp:contentplaceholder>
主頁可以在頁面、資料夾或應用程式級別指定。
人們對主頁的一個抱怨是,head HTML 標籤是在主頁中定義的。此元素必須在所有從主頁獲取佈局的頁面中共享。有幾種方法可以解決此問題,包括使用伺服器端程式碼在執行時修改 head 內容。但是,標題可以透過主頁檔案宣告頂部的 content 頁面中的 title 屬性自由編輯。實際上,可以在主頁的 head 部分放置 ContentPlaceHolder 控制元件,儘管 Visual Studio 2005 會生成警告。不幸的是,放置在關聯的 Content 控制元件內的標記將作為文字呈現。HtmlHead 物件包含專門的解析例程,以識別 link 和 script 等元素。此解析程式碼不應用於子 ContentPlaceHolder 控制元件的子級。但是,有一個解決方法。如果每個 link 和 script 控制元件都使用 runat="server" 屬性,那麼它們將被 ContentPlaceHolder 解析為單獨的 HtmlGenericControls。然後可以編寫程式碼來遍歷每個 HtmlGenericControl,並在執行屬性對映後將其替換為適當的控制元件型別 (HtmlLink、HtmlMeta 等)。[需要引用]