Asp.net mvc 3 自定义RazorViewEngine出现页面错误
我正在尝试用Razor实现一个自定义视图引擎。目标是如果视图位于子文件夹中,则改为使用该视图 我的视图引擎来自RazorViewEngineAsp.net mvc 3 自定义RazorViewEngine出现页面错误,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我正在尝试用Razor实现一个自定义视图引擎。目标是如果视图位于子文件夹中,则改为使用该视图 我的视图引擎来自RazorViewEngine public class RazorViewFactory : RazorViewEngine { public RazorViewFactory() { string TenantID = ConfigurationManager.AppSettings["TenantID"]; if (TenantID != null) {
public class RazorViewFactory : RazorViewEngine
{
public RazorViewFactory()
{
string TenantID = ConfigurationManager.AppSettings["TenantID"];
if (TenantID != null)
{
MasterLocationFormats = new[] {
"~/Views/Shared/{0}.cshtml"
};
ViewLocationFormats = new[]{
"~/Tenant/" + TenantID + "/Views/{1}/{0}.cshtml",
"~/Tenant/" + TenantID + "/Views/Shared/{0}.cshtml",
"~/Views/{1}/{0}.cshtml",
"~/Views/Shared/{0}.cshtml"
};
PartialViewLocationFormats = new[] {
"~/Tenant/" + TenantID + "/Views/{1}/{0}.cshtml",
"~/Tenant/" + TenantID + "/Views/Shared/{0}.cshtml"
};
}
}
}
在我的Global.asax中
protected void Application_Start()
{
...
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new RazorViewFactory());
}
除了加载我的租户子视图主页时,所有操作都正常,我得到以下错误
The view at '~/Tenant/TenantB/Views/Home/Index.cshtml'
must derive from WebViewPage, or WebViewPage<TModel>.
位于“~/Tenant/TenantB/Views/Home/Index.cshtml”的视图
必须从WebViewPage或WebViewPage派生。
如果我加载基本主页,它可以与Razor引擎配合使用。您需要将
web.config
文件从视图
文件夹复制到租户
文件夹中(或者确保它具有与此处所述相同的配置部分:)此外,请查看此帖子+1谢谢。我甚至没有注意到其中有一个Web.config文件,谢谢,因为我以空项目的形式启动了项目,然后添加了一些MVC页面,并使用Nuget添加DLL,所以错过了Web.config。这件事在我身上发生过两次,甚至在我还没学会的时候:)