В веб-приложении .NET Razor я пытаюсь программно установить макет
. Я не могу использовать _ViewStart.cshtml
и не могу устанавливать @ {Layout = "..."}
на каждой странице. Вот что я придумал:
Базовый класс WebViewPage
:
public abstract class SitePage<T> : System.Web.Mvc.WebViewPage<T>
{
private object _layout;
public new dynamic Layout { get { return _layout; } }
public override void InitHelpers()
{
base.InitHelpers();
_layout = "~/Themes/" + Settings.Theme + "/Views/_Layout.cshtml";
}
}
И в приложении web.config
я указываю все представления для использования этой базовой страницы. Но макет
, похоже, никогда не используется. Что здесь может быть не так?