마스터페이지 (master page)

-- ASP.NET 2012. 6. 21. 13:57
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

과거 ASP를 이용해서 asp파일들을 소스내에 삽입하여 프레임처럼 Header, LeftMenu, Footer를 만들곤 하였다.

main.asp
  - header.asp
  - left.asp
  - content.asp
  - footer.asp

ASP.NET을 이용할 기회가 있어서 위의 개념처럼 화면을 구성하려고 고민하다가 후배(Jackie)의 도움으로
마스터페이지를 이용하게 되었다.

Master.master
  - header.ascx
  - footer.ascx


Master.master

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Master.master.cs" Inherits="Master" %>

<%@ Register Src="~/Header.ascx" TagName="Header" TagPrefix="uc1" %>
<%@ Register Src="~/Footer.ascx" TagName="Footer" TagPrefix="uc2" %>


<html>
    <head runat="server">
          ...
        
<asp:ContentPlaceHolder id="Head" runat="server"></asp:ContentPlaceHolder>
    </head>
     <body>
        <form runat="server">
            
<uc1:Header ID="Header" runat="server" />

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

           
 <uc2:Footer ID="Footer" runat="server" />
         </form>
    </body>
</html>


Main.aspx

<%@ Page Language="C#" MasterPageFile="~/Master.master"  AutoEventWireup="true" CodeFile="Main.aspx.cs" Inherits="Main" %>

<asp:Content ID="head" ContentPlaceHolderID="Head" runat="Server">
   // javascript
</asp:Content>

<asp:Content ID="body" ContentPlaceHolderID="Body" runat="server">
  // Content
</asp:Content>


Master.master를 마스터페이지로 상속받은 페이지들은 위에 user control로 정의한 header와 footer가 나타나게 된다.

posted by 어린왕자악꿍