Asp.net mvc 3 自定义RazorViewEngine出现页面错误

Asp.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) {

我正在尝试用Razor实现一个自定义视图引擎。目标是如果视图位于子文件夹中,则改为使用该视图

我的视图引擎来自RazorViewEngine

 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。这件事在我身上发生过两次,甚至在我还没学会的时候:)