2010-05-24 3 views

답변

2

뷰는 사용할 마스터 페이지를 지정하는 .MasterName 속성을 노출합니다. 보기를 반환 할 때 컨트롤러에서이 값을 설정할 수 있습니다. 예를 들어

,

public ActionResult Index() 
    { 
     ViewResult vr = View(); 
     vr.MasterName="...."; 
     return vr; 
    } 
+1

사실 - 또는 'View' 메소드의 다양한 오버로드를 확인하십시오. 그 중 두 가지는 렌더링 할 마스터 페이지를 지정할 수 있습니다. http://msdn.microsoft.com/en-us/library/system.web.mvc.controller_methods(v=VS.100).aspx – mookid8000

+0

보다 일반적으로나 사이트 전체에 적용하기를 원한다면, 이는 뷰의 묶음에 대한 각 액션에서 이것을 적용해야 할 정도로 힘들 수 있습니다. –

+0

@Wim 좋은 지적. 일반적인 기본 컨트롤러 클래스를 만들고이 코드를 OnActionExecuted에 추가하거나 .View() 메서드를 재정의하거나 오버로드하는 것이 더 적합 할 수 있습니다. –

1

당신은 사용자 정의 ViewPage 클래스를 생성하고 OnPreInit 방법을 무시하고 그에 따라 MasterPageFile 속성을 설정할 수 있습니다.

자신 만의 ViewPage 클래스를 사용하도록 뷰를 변경하기 만하면됩니다.

관련 문제