文章轉自 http://wenku.baidu.com/link?url=7sLN0ihgZQ1XfX47b_y8qbpIVjS5T75Q1xvaoyIQ6OiKIgvzyVyRccnU9e9fqoOm4DBTxNyPPIpgGlq8n5l4cePZngx1J-va9PNFmdRn2se
母版頁中ContentPlaceHolder 控件的作用。當母版頁被一個頁面引用時,
頁面內容與母版頁上的ContentPlaceHolder控件合並,生成最終輸出。
ContentPlaceHolder控件的 ID 屬性與映射到引用頁面上一個類似的 ID 中。
當母版頁上有不止一個 ContentPlaceHolder 控件時,這種映射關系是很有用的。
可以在 ContentPlaceHolder 控件外添加任何 HTML 標記和任何其他控件。
告訴他們母版頁上的任何服務器端代碼都將在所有引用它的頁面上執行。
解釋 ContentPlaceHolder 控件的作用。每一個頁面自身特定的內容將被放置在 ContentPlaceHolder 控件內。
解釋內容頁的概念。結合下例解釋 @Page 指令及其屬性:
<%@ Page Language="C#" MasterPageFile="~/MasterPages/Master1.master" %>
Language 屬性定義使用的默認語言,而 MasterPageFile 屬性定義使用的母版文件的路徑。
解釋 Content 控件用於向內容頁添加特定於頁面的內容。所有特定於頁面的內容必須放置在 Content 控件里。
引用頁面的 Content 控件與母版頁的對應 ContentPlaceHolder 控件之間存在映射關系,這是通過映射它們的 ID 來實現的。
最后,結合以下示例解釋母版頁的 ContentPlaceHolder 控件與內容頁的 Content 控件之間的關系:
// Master File: A.Master
<%@ Master%>
<asp:ContentPlaceHolder ID= "topContent" runat = "server">
//Content File: A.aspx
<%@Page Master = "A.Master"%>
<asp:Content ID = "Content1" ContentPlaceHolderID= "topContent" runat = "server">
--Some markup--
</asp:Content>
在內容文件(A.aspx)的樣本代碼中,<%@Page%>指令的 master 屬性用於引用運行時內容文件將使用的母版文件。
母版文件(A.master)里 ContentPlaceHolder 控件的 ID 屬性值與內容文件(A.aspx)里的 ContentPlaceHolderID 屬性值是一樣的。
運行時,當瀏覽器請求 A.aspx 時,那么這兩個屬性將會被映射,從而合並 Content 控件的內容與對應的 ContentPlaceHolder 控件。