在ASP.NET MVC3项目(Razor)中使用不同的布局



我的ASP.NET MVC3项目一方面由网站本身组成,另一方面由类似"管理控制面板"的东西组成。这意味着我必须使用两种完全不同的主布局。

有几种方法可以实现这一点:

  • 在每个管理视图的顶部,我可以添加@{Layout="~/…/_AdminLayout.cs.html";}
  • 我也可以在管理控制器中使用重载的View方法,例如返回View("Index"、"_AdminLayout"、viewModel)

但这两种方法都与DRY原理形成了一点对比。

最常见的方法是什么?是否有一种方法可以在_ViewStart文件中放入一些逻辑,这些逻辑可以自动决定是使用管理员布局还是使用普通页面布局,如果是,如何使用?

如果有帮助的话,我对这两个部分的路线是不同的。

Normal page: {controller}/{action}/{id}
Admin page: admin/{controller}/{action}/{id}

创建一个管理区域并在该区域的_ViewStart文件中设置管理主布局如何?

最新更新