Пользовательский RazorViewEngine дает ошибку страницы

Я пытаюсь реализовать пользовательский механизм просмотра с помощью Razor. Цель состоит в том, если представление находится в подпапке, чтобы использовать это представление.

у меня есть мой view engine, полученный из 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" 
        };
    }
}

}

и в моем глобальном.асакс

 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>.

Если я загружаю базовую домашнюю страницу, она отлично работает с бритвой двигатель.

1 ответов


вам нужно скопировать из своего