В моей корневой папке 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, чтобы использовать эту более многословную перегрузку.