嵌套_ViewStart忽略布局设置

时间:2012-03-17 06:48:19

标签: asp.net-mvc-3

在我的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(即使他们正确地拿起了“使用嵌套的ViewStart“标题”。

有趣的是,如果我改变我的ActionMethod以使用

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

而不仅仅是

return View(newProjectCharter);

然后视图确实使用_ProjectCharterLayout.cshtml布局。知道我错过了什么吗?我不想更改所有的ActionMethods来使用这个更详细的重载。

1 个答案:

答案 0 :(得分:0)

正如我在你的帖子中所看到的,你指的是_ProjectLayout.cshtml在“

观看\'PROJECTCHARTER'

但是在代码中你说它在共享文件夹中:

Layout =“〜/ Views /'SHARED'/_ProjectLayout.cshtml”;

希望能解决它