ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ASP.NET] WebForms 마스터페이지와 중첩 마스터페이지 (작성중)
    ASP.NET 2020. 4. 2. 17:35
    반응형

    마스터 페이지와 aspx 파일이 각각 하나씩 있는 경우

     

     aspx는 마스터 페이지 파일을 참조하고 있다.

    마스터 페이지는 <asp:ContentPlaceHolder> 태그를 가지고 있으며

     

    태그 밖에는 <p> 유전자 </p>

    태그 안에는 <p> 재산 </p>이라는 태그가 있다.

     

    부모 마스터 페이지

    <p>유전자</p>
    <asp:ContentPlaceHolder ID="부모의재산">
    <p>재산</p>
    </asp:ContentPlaceHolder>

     

    자식 페이지

     자식 페이지는 페이지의 가장 첫줄에 마스터페이지를 참조한다는것을 명시한다.

    <%@ Page Language="C#" CodeBehind="abc" Inherits="abc" MasterPageFile="~/부모.Master" %>

     

    이제 자식페이지는 선택이 가능하다.

    <asp:Content> 태그를 생성하고 property로 <asp:ContentPlaceHolderID ="부모가 가진 콘텐츠 플레이스 홀더의 아이디">를 입력하고 내용을 추가할지 아닐지에 대해서 선택을 하는 것인데 쉽게 이야기하면 상속을 받겠다와 받지 않겠다 라고 표현할 수 있다.

     

    마스터 페이지가 가지고 있는 유전자는 자식 페이지가 필수로 상속받아야 하는 데이터이다.

    자식 페이지를 출력할 경우 자식 페이지는 유전자를 필수적으로 출력하게 된다.

     

    하지만 재산은 출력을 할 수도, 하지 않을 수도 있다.

     

    부모는 재산을 물려주고 싶어 한다. 그러니 자식 페이지가 아무런 행동을 취하지 않는다면 부모의 재산은 고스란히 자식에게 물리게 된다. 하지만 만약 부모의 재산에 대해서 자식이 관여하는 순간 부모가 가지고 있는 내용들은 자식에게 전달되지 않는다.

     

    <asp:Content ContentPlaceHolderID="부모의재산">

    자식 페이지에서 위의 코드를 입력한다면 부모인 마스터 페이지가 가지고 있던 <asp:ContentPlaceHolder> 태그 안의 내용들을 사용하지 않게 된다. 대신 자식 페이지에서는 새로운 내용을 입력할 수 있게 된다.

     

    --

    마스터 페이지는 그 마스터 페이지를 참조하는 모든 페이지들의 일관적인 모양, 또는 동작을 정의한다. 

    간단한 예로는 내비게이션 바, 푸터 등 어떤 페이지에서든 같은 내용으로 노출이 되어도 상관없는 부분들에 대하여 적용할 수 있겠다. 

     

     

     

    댓글

Designed by Tistory.