다음을 통해 공유


중첩된 ASP.NET 마스터 페이지

업데이트: 2007년 11월

마스터 페이지는 중첩될 수 있습니다. 즉, 한 마스터 페이지가 다른 마스터 페이지의 마스터 페이지가 될 수 있습니다. 중첩된 마스터 페이지를 사용하면 구성 요소화된 마스터 페이지를 만들 수 있습니다. 예를 들어, 대규모 사이트에는 사이트의 모양을 정의하는 전체적인 마스터 페이지가 포함될 수 있습니다. 그런 다음 다른 사이트 콘텐츠 파트너에서는 이 사이트 마스터를 참조하면서 해당 파트너의 콘텐츠 모양을 정의하는 자식 마스터를 자체적으로 정의할 수 있습니다.

자식 마스터 페이지의 파일 이름 확장명은 모든 마스터 페이지와 마찬가지로 .master입니다. 일반적으로 자식 마스터 페이지에는 부모 마스터 페이지의 콘텐츠 자리 표시자에 매핑된 콘텐츠 컨트롤이 포함되어 있습니다. 따라서 자식 마스터 페이지는 콘텐츠 페이지처럼 레이아웃됩니다. 그러나 자식 마스터 페이지에는 해당 자식 페이지에서 제공하는 콘텐츠를 표시하기 위한 고유의 콘텐츠 자리 표시자도 있습니다. 다음에 나오는 세 개의 페이지에서는 간단한 중첩 마스터 페이지 구성을 보여 줍니다.

다음은 부모 마스터 파일입니다.

<% @ 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>

다음은 자식 마스터 파일입니다.

<%@ 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>

다음은 자식 마스터 페이지를 참조하는 자식 파일입니다.

<%@ 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>

참고 항목

개념

ASP.NET 마스터 페이지 개요