母版頁(Master Pages)

weixin_33728268發表於2017-12-16

前言

母版頁(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 中允許多個佔位符。
  • 該 master page 被儲存為 "master1.master"。

註釋:該 master page 也能夠包含程式碼,允許動態的內容。

內容頁例項

<%@ 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 就會將母版頁與內容頁進行合併。

註釋:內容文字必須位於 <asp:Content> 標籤內。該標籤外的文字是不被允許的。

總結

須在母版頁中指定:

<%@ Master %>

<asp:ContentPlaceHolder id="CPH1" runat="server">
</asp:ContentPlaceHolder>

在內容頁指定

<%@ Page MasterPageFile="master1.master" %>

<asp:Content ContentPlaceHolderId="CPH1" runat="server">
</asp:Content>

首先需在內容頁指明使用的是哪個母版頁,其次母版頁中的ContentPlaceHolder的ID必須和內容也中的ContentPlaceHolderId屬性的值一致

書上的題目

要訪問母版頁中定義的任何自定義屬性,內容頁必須要使用內建的Page.Master屬性

相關文章