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

时间:2012-02-12 10:48:40

标签: c# .net asp.net-mvc-3 razor

我的ASP.NET MVC3项目一方面是网站本身,另一方面是“管理控制面板”。这意味着我必须使用2种完全不同的主布局。

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

  • 在每个管理员视图的顶部,我可以添加@ {Layout =“〜/.../_ AdminLayout.cshtml”; }
  • 我还可以在管理员控制器中使用重载的View方法,例如return View(“Index”,“_ AdminLayout”,viewModel);

但这两种方法与DRY原则略有不同。

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

如果它有用,我的两个部分的路线都不同。

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

1 个答案:

答案 0 :(得分:4)

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