2012-02-12 70 views
0

我的ASP.NET MVC3项目一方面由网站本身组成,另一方面由“管理控制面板”组成。这意味着我必须使用2个完全不同的主布局。在ASP.NET MVC3项目中使用不同的布局(Razor)

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

  • 在每个管理视图的顶部,我可以添加@ {布局= “〜/.../_ AdminLayout.cshtml”; }
  • 我也可以在管理控制器中使用重载的View-method,例如返回View(“Index”,“_AdminLayout”,viewModel);

但是这两种方法都与DRY原理相比有点不同。

什么是最常见的方法? 有没有办法将一些逻辑放在_ViewStart文件中,该文件可以自动决定是使用admin还是普通的页面布局,如果是,如何?

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

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

回答

4

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

+0

谢谢。这完全是我想到的,但我需要一点帮助决定逻辑。我如何决定是否在_ViewStart中加载普通布局或管理布局?另请参阅我上面的编辑。编辑:啊,现在我明白了。您是说“创建管理区域”是指**路由区**吗? – alapeno 2012-02-12 10:57:20

+0

我的意思是http://msdn.microsoft.com/en-us/library/ee671793(v=vs.98).aspx – 2012-02-12 11:13:53

+0

谢谢,我知道这样的事存在,但它并没有出现在我的脑海中我需要它。 – alapeno 2012-02-12 11:21:48

相关问题