Asp.net-Mvc
強制所有區域使用相同的佈局
我有以下項目結構:
- /視圖/共享/_佈局;
- /Areas/Area1/Views/ControllerName/Index;
…
- /區域/區域/視圖/控制器名稱/索引。
有沒有辦法強制所有區域使用**_Layout作為基本佈局**?
有沒有辦法在不添加**_ViewStart**文件的情況下做到這一點(例如,通過路由配置)?
也可以看看:
您只需添加一個名為:
_ViewStart.cshtml在每個區域視圖文件夾下:
/Areas/Area1/Views/_ViewStart.cshtml並編輯文件以指向根佈局,如下所示:
@{ Layout = "~/Views/Shared/_Layout.cshtml"; }為了使其工作,您不必在視圖的佈局屬性中指定值,如果這樣做,您將覆蓋全域佈局
注意:正如 Tony 提到的,您可以編輯每個視圖的佈局屬性以指向根佈局,但這不是推薦的方法,因為您會將視圖與佈局耦合併更改它會很痛苦
編輯 1
如果您想使用程式碼設置預設視圖的佈局,也許您應該考慮編寫自定義視圖引擎。
嘗試Google關於自定義
RazorViewEngine和RazorView這篇文章可能是一個很好的起點
<http://weblogs.asp.net/imranbaloch/archive/2011/06/27/view-engine-with-dynamic-view-location.aspx>
我沒有做過這樣的事情,但我希望我能指出你正確的方向