ASP.NET 2.0 - 母版頁(Master Pages)

母版頁(Master Pages)為網站內的其他頁面提供模版。

母版頁(Master Pages)

Master Page 使您有能力為 web 應用程序中的所有頁面(或頁面組)創建一貫的 外觀 和 行為。

Master Page 為其他頁面提供了模版,帶有共享的佈局和功能。Master Page 為內容定義了可被內容頁面覆蓋的佔位符。而輸出結果就是 Master Page 和內容頁面的組合。

內容頁包含您希望顯示的內容。

當用戶請求內容頁時,ASP.NET 將對頁面進行合併以生成輸出,輸出結果對 Master Page 的佈局和內容頁面的內容進行了合併。

Master Page 實例:

<%@ Master %>
<html>
<body>
<h1>Standard Header For All Pages</h1>
<asp:ContentPlaceHolder id="CPH1" runat="server">
</asp:ContentPlaceHolder>
</body>
</html>

Master Page 是一張為其他頁面設計的普通 HTML 模版頁。

@ Master 指令把它定義為一張 master page。

這個 master page 為單獨的內容包含了一個佔位符標籤 <asp:ContentPlaceHolder>

id="CPH1" 属性标识該佔位符,在相同的 master page 中允許多個佔位符。

หน้าแบบแบบสำเนานี้ถูกบันทึกเป็น "master1.master"

หมายเหตุ:หน้าแบบแบบสำเนานี้ยังสามารถมีรหัสด้วย ซึ่งอนุญาตให้มีเนื้อหาที่เปลี่ยนแปลงได้

ตัวอย่างหน้าเนื้อหา

<%@ Page MasterPageFile="master1.master" %>
<asp:Content ContentPlaceHolderId="CPH1" runat="server">
<h2>Individual Content</h2>
<p>Paragrap 1</p>
<p>Paragrap 2</p>
</asp:Content>

หน้าเนื้อหานี้เป็นหน้าเนื้อหาที่เป็นส่วนหนึ่งที่อิสระ

คำสั่ง @ Pageจัดให้เป็นหน้าเนื้อหามาตรฐาน

หน้าเนื้อหานี้มีแท็กเนื้อหาหนึ่ง<asp:Content>ซึ่งแท็กนี้อ้างถึงแบบแบบสำเนา (ContentPlaceHolderId="CPH1")

หน้าเนื้อหานี้ถูกบันทึกเป็น "mypage1.aspx"

เมื่อผู้ใช้ขอหน้านี้ ASP.NET จะทำการผสมกับหน้าแบบแบบสำเนาและหน้าเนื้อหา

คลิกที่นี่เพื่อแสดง mypage1.aspx

หมายเหตุ:ข้อความเนื้อหาต้องอยู่ภายในแท็ก <asp:Content> แท็กนอกไม่อนุญาต

หน้าเนื้อหาที่มีคอนตรอล

<%@ Page MasterPageFile="master1.master" %>
<asp:Content ContentPlaceHolderId="CPH1" runat="server">
<h2>W3School</h2>
<form runat="server">
<asp:TextBox id="textbox1" runat="server" />
<asp:Button id="button1" runat="server" text="Button" />
</form>
</asp:Content>

เนื้อหาบนหน้าเนื้อหาสามารถแสดงว่าจะเข้าสู่หน้าเนื้อหาเพื่อใส่คอนตรอล .NET ลงหน้าเนื้อหา ซึ่งเป็นหน้าปกติ

คลิกที่นี่เพื่อแสดง mypage2.aspx