【发布时间】:2012-10-29 20:56:57
【问题描述】:
我的主视图文件夹中有一个 _ViewStart.cshtml,代码如下。
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
在我的管理区域的 View 文件夹中,我有一个带有此代码的 _ViewStart.cshtml
@{
Layout = Request.IsAjaxRequest() ? null : "~/Areas/Admin/Views/Shared/_Layout.cshtml";
}
我在两行代码上都设置了一个断点,当我进入管理区域时,我可以看到它点击了该文件夹中的 viewstart,而不是主文件夹中的那个。即使它命中了该代码,它仍然只使用主布局。
【问题讨论】:
-
你能确认管理布局的内容与默认的不同吗?您对断点的观察是正确的。
-
是的,为了确保我没有混淆他们,我在各自的布局上用大写字母“这是主布局”和“这是管理员”。
-
那么,
Request.IsAjaxRequest()是空的吗?我也对您的术语感到有些困惑。什么是“主视图文件夹”?你的意思是不在一个地区? -
您确定您的视图中没有布局设置吗?
-
就是这样,我之前正在测试并在我正在查看的视图中进行了布局设置。如果您将其作为答案,我会将其标记为已接受。
标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-areas razor-2