ASP.NET MVC главная страница - PullRequest
       6

ASP.NET MVC главная страница

0 голосов
/ 01 февраля 2010

В пользовательском viewengine в методе findview имя мастера всегда пусто, даже если для страницы определена главная страница. Любая идея, почему или как я могу получить мастер-имя?

В классе viewEngine:

MasterLocationFormats = new[] {
    "~/{0}.master",
    "~/Shared/{0}.master",
    "~/Views/{1}/{0}.master",
    "~/Views/Shared/{0}.master"
};

public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache) { }

На странице:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Empty.Master" Inherits="System.Web.Mvc.ViewPage" %>

Основной файл существует.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 24 апреля 2013

Дебра, если метод действия, который возвращает View, конкретно упоминает имя главной страницы (например, return View ("viewName", "masterName")), FindView попытается найти его в местах, указанных в массиве MasterLocationFormats, и назначить его в качестве главной страницы представления. Эта главная страница переопределяет главную страницу, указанную в директивах страницы.

Если, с другой стороны, мастер-страница не указана методом действия, FindView не будет ее искать, так как не знает об этом. Только во время рендеринга страницы ViewEngine выбирает имя главной страницы из директив страницы и отображает его вместе с остальной частью страницы.

Надеюсь, это поможет.

0 голосов
/ 01 февраля 2010

Может быть, ваша главная страница не в стандартном месте? Можете ли вы опубликовать код своего пользовательского viewengine?

...