视图/页面的MasterPageFile属性何时检查它是否存在于ASP.NET MVC WebForms视图引擎中?
我想要做的是让以下代码不输出错误:
分析程序错误消息:文件'/SomePlaceThatDosentExist/Site.Master'不存在。
在我的视图的.aspx文件中定义:
<%@ Page Language="C#" MasterPageFile="~/SomePlaceThatDosentExist/Site.Master" Inherits="System.Web.Mvc.ViewPage" >
我需要编写一些代码才能进入并定义有效的MasterPageFile属性?
我在我的自定义ViewPage类中尝试了以下视图继承
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是ViewPage生命周期中最早的一点,所以它有可能在生命周期的早期阶段进行吗?
在你写作和回答之前注意:
答案 0 :(得分:2)
解决问题的最佳方法可能是创建自定义VirtualPathProvider
答案 1 :(得分:-1)
如果要更改母版页的查找方式,可以实现自己的视图引擎:
public CustomViewEngine()
{
MasterLocationFormats = new string[] {
"~/RealPlace/Site.Master""
};
}