ASP.NET MVC 3 템 플 릿 페이지 사용(2)

본 고 는 MVC 3 에서 템 플 릿 페이지 를 어떻게 사용 하 는 지 보 여 드 리 겠 습 니 다.전통 적 인 webform 디자인 모델 에서 저 희 는 masterpage 를 템 플 릿 페이지 로 사용 하고 MVC 3 razor 보기 디자인 에서 저 희 는 다른 방식 으로 템 플 릿 페이지 를 사용 합 니 다.
새 MVC 3 프로젝트 를 만 듭 니 다.솔 루 션 자원 관리 에서 VIEWS 폴 더 아래 에 Shared 폴 더 가 있 는 것 을 볼 수 있 습 니 다.Shared 폴 더 에Layout.cshtml 페이지 입 니 다.이것 이 프로젝트 의 기본 템 플 릿 페이지 입 니 다.아래 그림 과 같다. :
       
1.새 내용 페이지
        내용 페이지 는 MVC 3 에서 보기 레이아웃 페이지 라 고도 부 릅 니 다.보기 폴 더 를 오른쪽 클릭 으로 선택 하고 보 기 를 추가 하여 내용 페이지 를 추가 한 다음 에 해당 하 는 템 플 릿 을 선택 할 수 있 습 니 다.다음은 저희 가 만 든 콘 텐 츠 페이지 ViewPageOne.cshtml 입 니 다.

       템 플 릿 페이지 의 페이지 를 사용 하면 자동 으로 페이지 에 코드 를 생 성 합 니 다.템 플 릿 페이지 를 지정 하고 레이아웃 을 사용 하여 구체 적 인 템 플 릿 페이지 를 지정 합 니 다.내용 페이지 에 Layout 속성 이 없 으 면 기본 템 플 릿 페이지 를 사용 합 니 다.

@{ 
 ViewBag.Title = "ViewPageOne"; 
 Layout = "~/Views/Shared/_Layout.cshtml"; 
} 
 
<h2>ViewPageOne</h2> 
레이아웃 이 null 로 지정 되면 템 플 릿 페이지 를 사용 하지 않 음 을 표시 합 니 다.

@{ 
 ViewBag.Title = "ViewPageOne"; 
 Layout = null; 
} 
 2.새 템 플 릿 페이지
      오른쪽 단 추 를 누 르 고 Shared 파일 을 선택 한 다음 메뉴 에서 새 항목 을 추가 하고 팝 업 으로 새 항목 추가 대화 상 자 를 선택 한 다음 MVC 3 레이아웃 페이지 를 선택 하면 레이아웃 페이지 가 완 료 됩 니 다.아래 에 우리 가 추가 한 레이아웃 페이지 를 추가 합 니 다LayoutPageOne.cshtml
    
3.어떤 파일 에 템 플 릿 페이지 를 따로 지정 합 니 다.
     어떤 페이지 가 기본 템 플 릿 페이지 를 사용 하지 않 으 려 면 템 플 릿 페이지 를 따로 지정 할 수 있 습 니 다.아래 코드 는 내용 페이지 의 템 플 릿 페이지 를 새로 만 든 템 플 릿 페이지 로 지정 할 수 있 습 니 다LayoutPageOne.cshtml

@{ 
 ViewBag.Title = "ViewPageOne"; 
 Layout="~/Views/Shared/_LayoutPageOne.cshtml"; 
} 
<h2>ViewPageOne</h2> 
4.보기 폴 더 에 템 플 릿 페이지 지정
      컨트롤 러 아래 의 모든 보기 에 같은 템 플 릿 파일 을 사용 하려 면 이 컨트롤 러 에 대응 하 는 시도 폴 더 아래 에 을 만 들 수 있 습 니 다.ViewStart.cshtml 파일,그리고ViewStart.cshtml 에서 사용 할 템 플 릿 페이지 를 지정 합 니 다.

@{ 
 Layout = "~/Views/Shared/_LayoutPageOne.cshtml"; 
} 
이렇게 하면 contrller 아래 보 기 를 템 플 릿 파일 로 지정 할 수 있 습 니 다.
5.페이지 는 템 플 릿 페이지 를 사용 하지 않 습 니 다.
     내용 페이지 가 템 플 릿 페이지 를 사용 하지 않 으 려 면레이아웃 을 null 로 설정
     보기 페이지 를 추가 할 때 템 플 릿 을 선택 하지 않 아 도 됩 니 다.
 
6.@RenderBody ()
    @RenderBody()는 템 플 릿 페이지 에 내용 페이지 가 템 플 릿 에 있 는 위 치 를 표시 하 는 데 사 용 됩 니 다.템 플 릿 페이지 가 있 는 내용 페이지 를 만 들 때 내용 페이지 는 템 플 릿 페이지 에@RenderBody()가 있 는 위치 에 나타 나 고 템 플 릿 페이지 에@RenderBody()만 있 습 니 다.
 
7.@RenderSection
  @RenderSection 은 템 플 릿 레이아웃 에서 영역 을 정의 하 는 데 사 용 됩 니 다.내용 페이지 에서 이 영역 을 채 울 내용 을 정의 할 수 있 습 니 다.예 를 들 어 내용 페이지 에서 인용 한 JS 파일 은 템 플 릿 페이지 의 section 위치 에 채 울 수 있 습 니 다.각 내용 페이지 의 단독 정 보 는 템 플 릿 페이지 에 이 영역 을 표시 할 수 있 습 니 다.
  @RenderSection 은 두 개의 인자 가 있 습 니 다.첫 번 째 인 자 는 section 의 이름 을 정의 하 는 데 사 용 됩 니 다.두 번 째 인 자 는 불 형식 입 니 다.TRUE 라면 내용 페이지 가 이 section 을 정의 해 야 하고 false 이면 내용 페이지 가 section 을 정의 할 수도 있 고 정의 하지 않 을 수도 있 습 니 다.
템 플 릿 페이지:

<!DOCTYPE html> 
 
<html> 
<head> 
 <title>   @ViewBag.Title</title> 
</head> 
<body> 
 <p> 2    </p> 
 <div> 
  @RenderBody() 
 </div> 
  <div> 
     : 
   @RenderSection("Remark", false); 
  </div> 
</body> 
</html> 
내용 페이지:

@{ 
 ViewBag.Title = "  "; 
} 
 
<h2>@ViewBag.Message</h2> 
<p> 
        ASP.NET MVC      ,    <a href="http://asp.net/mvc" title="ASP.NET MVC   ">http://asp.net/mvc</a>。 
</p> 
@section Remark 
{ 
      
 } 
<p>  </p> 
8.@RenderPage
  @RenderPage 는 한 페이지 에 다른 페이지 의 내용 을 보 여 주 는 데 사 용 됩 니 다.매개 변 수 는 보 여줄 페이지 의 위 치 를 지정 합 니 다.
  저 희 는 Shared 폴 더 아래 에 footer.cshtml 파일 을 새로 만 든 다음 에 저작권 정 보 를 쓴 다음 템 플 릿 페이지 에 footer 페이지 를 보 여 주 는 위 치 를 엽 니 다.

<!DOCTYPE html> 
 
<html> 
<head> 
 <title>   @ViewBag.Title</title> 
</head> 
<body> 
 <p> 2    </p> 
 <div> 
  @RenderBody() 
 </div> 
  <div> 
     : 
   @RenderSection("Remark", false); 
  </div> 
 <footer> 
 
  @RenderPage("~/Views/Shared/footer.cshtml") 
 </footer> 
</body> 
</html> 
  [email protected]()와 Html.RenderPartial()
   [email protected]()와 Html.RenderPartial()두 가지 방법 은 하나의 섹 션 을 출력 할 수 있 습 니 다.오른쪽 단 추 를 누 르 면 새 항목 을 추가 하고 MVC 3 섹 션 을 선택 하면 하나의 섹 션 을 추가 할 수 있 습 니 다.사용자 컨트롤 에 해당 합 니 다.
이 럴 때 사용자 가 두 가지 방법 으로 페이지 의 내용 을 출력 할 수 있 습 니 다.물론 이 두 가지 방법 은 보기 페이지 와 내용 페이지 를 직접 출력 할 수 있 습 니 다.
   @Html.Partial()의 매개 변 수 는 사용자 컨트롤 이름,즉 섹 션 이름 입 니 다.반환 값 은 string 형식 으로 직접 출력 할 수 있 습 니 다.
   @Html.RenderPartial()의 매개 변 수 는 사용자 컨트롤 이름 이 고 반환 값 은 VOID 이 며 호출 할 때 내용 을 Response 에 직접 출력 합 니 다.
  용법 은 다음 과 같다.

<div id="logindisplay"> 
    @Html.Partial("_PartialLogin") 
    @{ 
     Html.RenderPartial("_PartialLogin"); 
     } 
     
   </div> 
이상 은 ASP.NET MVC 3 템 플 릿 페이지 의 사용 방법 입 니 다.

좋은 웹페이지 즐겨찾기