1. 程式人生 > >Asp .net MasterPageFile母版頁

Asp .net MasterPageFile母版頁

轉載地址:http://blog.163.com/magic_shan/blog/static/248014312008111994153714/

MasterPageFile母版頁

本來想用最簡潔的語言來表述,卻發現把它搞得更復雜了。

剛開始學,什麼都不懂,看到了這段程式碼,才促使自己去研究MasterPageFile到底是什麼含義。

<%@ Page Language="C#" MasterPageFile="~/MasterPages/Master1.master" Title="Content Page"%>

MasterPageFile其實是定義一個了外圍的框架的頁面,並且在裡面設定了具體內容存放的位置。舉例來說,MasterPageFile

就相當於相框的功能。網站的真正具體頁面實際是由MasterPageFile(相框)和內容頁面(照片)組成。

最常見的應用就是網站的頂部導航欄和底部的CopyRight宣告欄。可以把頂部導航欄和底部的CopyRight宣告欄都放到MasterPageFile裡,然後宣告中間是放內容頁面的。 這樣網站的的每個頁面都有統一的頂部導航欄和底部的CopyRight宣告欄,只是中間的內容頁面不同而已。

母版頁為具有副檔名 .master(如 Main.master)的 ASP.NET 檔案,由特殊的 @ Master 指令識別如下:

<%@ Master Language="C#" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>

Visual Web Developer

如何:為 ASP.NET 母版頁建立內容頁 (Visual Studio)

內容頁是與母版頁相關聯的 ASP.NET 網頁。母版頁建立一個佈局幷包含一個或多個用於可替換文字和控制元件的 ContentPlaceHolder 控制元件。內容頁只包含在執行時與母版頁的 ContentPlaceHolder 控制元件合併在一起的文字和控制元件。有關更多資訊,請參見 ASP.NET 母版頁概述。

Visual Web Developer 提供了多種建立內容頁的方式,包括在編輯母版頁時所用到的快捷方式。此外,還可以從空白頁開始並新增適當的指令來建立內容頁。

在建立內容頁後,可以建立與母版頁上的每個 ContentPlaceHolder 相對應的自定義內容。此外,還可以顯式選擇允許顯示母版頁的預設內容。

在 Visual Web Developer 中新增內容頁

  1. 在解決方案資源管理器中,右鍵單擊網站的名稱,再單擊“新增新項”。

  2. 在“Visual Studio 已安裝的模板”列表中單擊“Web 窗體”。

  3. 選擇“選擇母版頁”複選框,再單擊“新增”。

    “選擇母版頁”對話框出現。

  4. 在“資料夾內容”框中單擊要與所建立的頁相關聯的母版頁,再單擊“確定”。

在編輯母版頁時建立內容頁

  • 在編輯器中開啟母版頁後,右鍵單擊該頁上的任意位置,再單擊“新增內容頁”。

    Visual Web Developer 隨即會建立一個名為 Defaultx.aspx 的新內容頁,其中 x 是序列號。

    注意

    若要向該內容頁指定其他名稱,請在解決方案資源管理器中右鍵單擊該預設名稱,然後單擊“重新命名”。

以宣告方式建立內容頁

  1. 建立一個新的 ASP.NET 網頁。

  2. 切換到“源”檢視。

  3. 移除該頁中除 @ Page 指令之外的所有內容。

  4. 將引用母版頁的 MasterPageFile 屬性新增到 @ Page 指令中,如下面的程式碼示例所示。

    Visual Basic

    MasterPageFile母版頁 - BLEACH - BLEACH 複製程式碼

    <%@ Page Language="VB" MasterPageFile="~/Master1.master" %>

    C#

    MasterPageFile母版頁 - BLEACH - BLEACH 複製程式碼

    <%@ Page Language="C#" MasterPageFile="~/Master1.master" %>

    注意

    @ Page 指令可能包含其他屬性,如 CodeFile 和 Inherits,此處未顯示這些屬性。

  5. 將與母版頁上的 ContentPlaceHolder 控制元件相對應的 Content 控制元件新增到該頁上。

    注意

    內容頁只能包含 @ Page 指令和 Content 控制元件。

在 HTML 設計器中建立內容

當在 Visual Web Developer 中建立內容頁時,預設情況下該設計器為母版頁中定義的每個 ContentPlaceHolder 控制元件分別建立一個 Content 控制元件。可以將自定義內容新增到每個 Content 控制元件中或將其顯式轉換為母版頁中定義的預設內容(如果有的話)。

在“設計”檢視中向該頁新增內容

  • 在“設計”檢視中,將控制元件或元素拖到 Content 控制元件上或單擊該控制元件並開始鍵入內容。

在“設計”檢視中顯示預設母版頁內容

  1. 右鍵單擊 Content 控制元件,再單擊“顯示智慧標記”。

  2. 單擊“預設為母版頁的內容”。

    Visual Web Developer 隨即顯示包含母版頁中定義的預設內容的 Content 控制元件。Content 控制元件的標題欄包含“(母版頁)”術語以指示該控制元件顯示的是母版頁而不是內容頁的資訊。

    在此模式下,不能編輯 Content 控制元件中顯示的內容。

  3. 若要建立自定義內容,請右鍵單擊該控制元件,單擊“顯示智慧標記”,再單擊“建立自定義控制元件”以將控制元件重新置於編輯模式下。

    該設計器會從內容頁的標記中移除 Content 控制元件。

    注意

    內容頁中需要 Content 控制元件只是為了重寫母版頁中的相應 ContentPlaceHolder 控制元件。