Páginas mestras ASP.NET aninhadas
Páginas mestras podem ser aninhadas, com uma página mestra referenciando outra como a mestra.Páginas mestras aninhadas permitem que sejam criadas páginas mestras componentizadas.Por exemplo, um site grande pode conter uma página mestra geral que define a aparência do site.Então parceiros diferentes de conteúdo do site podem definir suas próprias páginas mestras filhas que referenciam o site mestre e que definem a aparência do conteúdo desse parceiro, por sua vez.
Uma página mestra filha tem a extensão de nome de arquivo .master, como qualquer página mestra.A página mestra filha normalmente contém controles que são mapeados para conter espaços reservados na página mestra pai.Neste aspecto, a página mestra filha é formatada como qualquer página de conteúdo.Entretanto, a página mestra filha também tem espaços de conteúdo reservados para si mesma para exibir conteúdo fornecido por suas próprias páginas filhas.As listagens de três página a seguir mostram uma configuração simples de página mestra aninhada.
Este é o arquivo mestre pai:
<% @ Master Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
<head >
<title>Untitled Page</title>
</head>
<form id="Form1" >
<div>
<h1>Parent Master</h1>
<p style="font:color=red">This is parent master content.</p>
<asp:ContentPlaceHolder ID="MainContent" />
</div>
</form>
</body>
</html>
<% @ Master Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head >
<title>Untitled Page</title>
</head>
<body>
<form id="Form1" >
<div>
<h1>Parent Master</h1>
<p style="font:color=red">This is parent master content.</p>
<asp:ContentPlaceHolder ID="MainContent" />
</div>
</form>
</body>
</html>
Este é o arquivo mestre filho:
<%@ Master Language="VB" MasterPageFile="~/Parent.master"%>
<asp:Content id="Content1" ContentPlaceholderID="MainContent" >
<asp:panel id="panelMain" backcolor="lightyellow">
<h2>Child master</h2>
<asp:panel id="panel1" backcolor="lightblue">
<p>This is childmaster content.</p>
<asp:ContentPlaceHolder ID="ChildContent1" />
</asp:panel>
<asp:panel id="panel2" backcolor="pink">
<p>This is childmaster content.</p>
<asp:ContentPlaceHolder ID="ChildContent2" />
</asp:panel>
<br />
</asp:panel>
</asp:Content>
<%@ Master Language="C#" MasterPageFile="~/Parent.master"%>
<asp:Content id="Content1" ContentPlaceholderID="MainContent" >
<asp:panel id="panelMain" backcolor="lightyellow">
<h2>Child master</h2>
<asp:panel id="panel1" backcolor="lightblue">
<p>This is child master content.</p>
<asp:ContentPlaceHolder ID="ChildContent1" />
</asp:panel>
<asp:panel id="panel2" backcolor="pink">
<p>This is child master content.</p>
<asp:ContentPlaceHolder ID="ChildContent2" />
</asp:panel>
<br />
</asp:panel>
</asp:Content>
Este é um arquivo filho que faz referência a página mestra filha:
<%@ Page Language="VB" MasterPageFile="~/Child.master"%>
<asp:Content id="Content1" ContentPlaceholderID="ChildContent1" >
<asp:Label id="Label1"
text="Child label1" font-bold="true" />
<br>
</asp:Content>
<asp:Content id="Content2" ContentPlaceholderID="ChildContent2" >
<asp:Label id="Label2"
text="Child label2" font-bold="true"/>
</asp:Content>
<%@ Page Language="C#" MasterPageFile="~/Child.master"%>
<asp:Content id="Content1" ContentPlaceholderID="ChildContent1" >
<asp:Label id="Label1"
text="Child label1" font-bold="true" />
<br />
</asp:Content>
<asp:Content id="Content2" ContentPlaceholderID="ChildContent2" >
<asp:Label id="Label2"
text="Child label2" font-bold="true"/>
</asp:Content>