Вложенный _ViewStart, игнорирующий настройку Layout - PullRequest
2 голосов
/ 17 марта 2012

В моей корневой папке Views у меня есть _ViewStart.cshtml, который имеет:

@{
Layout = "~/Views/Shared/_Layout.cshtml";
Page.Title = "Using Root ViewStart!";
}

Затем во вложенной папке Views \ ProjectCharter у меня есть еще один _ViewStart.cshtml, который выглядит следующим образом:

@{
    Layout = "~/Views/Shared/_ProjectLayout.cshtml";
    Page.Title = "Using Nested ViewStart!";
}

(обратите внимание, что и файл _Layout.cshtml, и файл _ProjectLayout.cshtml находятся в одной папке, которая называется Views \ Shared).

Проблема, с которой я столкнулся, заключается в том, что представления в моей папке Views \ ProjectCharter НЕ используют макет _ProjectLayout.cshtml ... вместо этого они по-прежнему используют корневой _Layout.cshtml (даже если они правильно выбирают " Использование «Nested ViewStart» (заголовок).

Что интересно, если я изменю свой ActionMethod, чтобы он возвращал View, используя

return View("Create","~/Views/Shared/_ProjectLayout.cshtml",newProjectCharter);

вместо

return View(newProjectCharter);

тогда представление действительно использует макет _ProjectCharterLayout.cshtml. Есть идеи, что мне не хватает? Я не хочу менять все мои ActionMethods, чтобы использовать эту более многословную перегрузку.

1 Ответ

0 голосов
/ 17 марта 2012

Как я вижу из вашего поста, вы ссылаетесь на _ProjectLayout.cshtml, находящийся в "

Просмотров \ 'PROJECTCHARTER'

но в коде вы говорите, что он находится в общей папке:

Layout = "~ / Views / 'SHARED' /_ProjectLayout.cshtml";

Надеюсь, что разберется

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...