ASP.NET MVC WebForms ViewEngine에있는 MasterPageFile은 언제입니까?
-
05-07-2019 - |
문제
View/Page의 Mas
내가하고 싶은 것은 다음 코드가 오류를 출력하지 않는 것입니다.
Parser 오류 메시지 : 파일 '/someplacethatdosentexist/site.master'는 존재하지 않습니다.
내보기의 .aspx 파일에 정의 :
<%@ Page Language="C#" MasterPageFile="~/SomePlaceThatDosentExist/Site.Master" Inherits="System.Web.Mvc.ViewPage" >
들어가기 위해 코드를 작성하고 유효한 MasterPageFile 속성을 정의해야합니까?
내 뷰가 상속받는 사용자 정의 뷰 페이지 클래스에서 다음을 시도했습니다.
public override string MasterPageFile
{
get
{
return base.MasterPageFile;
}
set
{
base.MasterPageFile = "~/RealPlace/Site.Master";
}
}
다음을 시도했습니다 (내보기가 상속받는 사용자 정의보기 페이지 클래스에서)
protected override void OnPreInit(EventArgs e)
{
base.MasterPageFile = "~/RealPlace/Site.Master";
base.OnPreInit(e);
}
두 경우 모두 위에서 언급 한 오류가 표시됩니다.
내가 아는 바에 따르면, Onpreinit은 뷰 페이지 수명주기에서 가장 초기의 지점이므로 수명주기에서 더 일찍 갈 수 있습니까?
작성하고 답변하기 전에 :
- return view ( "ViewName", "MasterPagename")에 대해 알고 있습니다.
- 동적 마스터 페이지에 대해 알고 있지만이 특정 작업을 수행하고 싶습니다.
해결책
문제를 해결하는 가장 좋은 방법은 아마도 사용자 정의를 만드는 것입니다. VirtualPathProvider
다른 팁
마스터 페이지를 찾는 방법을 변경하려면 자신의 ViewEngine을 구현할 수 있습니다.
public CustomViewEngine()
{
MasterLocationFormats = new string[] {
"~/RealPlace/Site.Master""
};
}
제휴하지 않습니다 StackOverflow