2012-02-12 36 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