문제

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""
    };
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top