如何在两个区域使用相同的布局mvc

how use same layout in two areas mvc

我有以下项目结构:

Layout = "~/Areas/BaseAdmin1/Views/Shared/_LayoutP.cshtml";

~/Areas/BaseAdmin1/Views/ControllerName/Index;
...
~/Areas/BaseAdmin2/Views/ControllerName/Index;

有什么方法可以强制所有区域都使用 _Layout 作为基本布局吗?

我在 BaseAdmin2 的视图中使用

Layout = "~/Areas/BaseAdmin1/Views/Shared/_LayoutP.cshtml";

但是当 运行 从 baseadmin2 查看时看到错误页面未找到

视图是直接的文件引用;他们不受任何特定区域的约束。只需创建 Areas\[Area Name]\Views\_ViewStart.cshtml 并在其中添加以下代码:

@{
    Layout = "~/Areas/BaseAdmin1/Views/Shared/_LayoutP.cshtml";
}

然后,该布局将用于您放置此文件的区域内的所有视图。

如果您收到 404 错误,那与您的布局无关。您用来访问该页面的 URL 有问题。