我有一个带有区域的 ASP.NET MVC 4 站点,并且我有一些要在区域之间共享的系统视图。每个区域都有自己独立的布局。当我访问系统视图(通过明确指定area = ""
)时,它使用主 _ViewStart.cshtml 文件中的布局页面。问题是,我想改用区域的布局。
我尝试从主 _ViewStart.cshtml 文件中删除 Layout 声明,甚至完全删除 _ViewStart.cshtml 文件,但所做的只是让我的系统视图呈现完全没有布局。
我还看到了这篇文章,它解释了你可以将复杂的逻辑放在你的 _ViewStart.cshtml 文件中来做到这一点。我尝试过,但在尝试在同一页面上呈现部分视图(特定于区域)时遇到问题。看来我需要“重置”_ViewStart.cshtml 中的 area 参数,但我还没有弄清楚如何做到这一点。
如何使主视图(来自/Views/
文件夹)采用称为视图的区域的布局?请记住,我不想将其硬编码为特定区域的布局。
显而易见的事情是在每个区域制作系统视图及其控制器的副本,但我试图避免重复文件(DRY)。