【发布时间】:2013-11-13 11:26:51
【问题描述】:
我有一个带有区域的 ASP.NET MVC 4 站点,并且我有一些想要在这些区域之间共享的系统视图。每个区域都有自己独立的布局。当我访问系统视图(通过明确指定area = "")时,它使用主 _ViewStart.cshtml 文件中的布局页面。问题是,我想改用区域的布局。
我尝试从主 _ViewStart.cshtml 文件中删除 Layout 声明,甚至完全删除 _ViewStart.cshtml 文件,但所做的只是让我的系统视图呈现完全没有布局。
我还遇到了this post,它解释了您可以将复杂的逻辑放入您的 _ViewStart.cshtml 文件中来执行此操作。我尝试过,但在尝试在同一页面上呈现部分视图(特定于区域)时遇到问题。看来我需要“重置”_ViewStart.cshtml 中的 area 参数,但我还没有弄清楚该怎么做。
如何使主视图(来自/Views/ 文件夹)采用称为视图的区域的布局?请记住,我不想将其硬编码到特定区域的布局中。
显而易见的做法是在每个区域复制系统视图及其控制器,但我试图避免重复文件 (DRY)。
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-4 razor