【问题标题】:Multiple layouts for ASP.Net MVC 4ASP.Net MVC 4 的多种布局
【发布时间】: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


【解决方案1】:

一开始我没有看到它,但是我正在测试的特定视图指定了错误的布局,所以无论我在其他任何地方放什么它都会覆盖它。

【讨论】:

    猜你喜欢
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    • 2020-02-13
    相关资源
    最近更新 更多