3
我正在爲設計用於服務兩個域的MVC4應用程序工作。我們的大部分內容將在各個域中共享,但有時我們需要根據請求來自哪個網站呈現不同的標記(使用Razor)。MVC4剃刀自定義查看定位器
理想情況下,我想基於慣例的方法,讓我有一個文件夾結構是這樣的:
Views
+ Domain1
+ ControllerName
View1
View2
+ Domain2
+ ControllerName
View1
+ ControllerName
View1
View2
在解決一個觀點,我想首先檢查特定於域的文件夾,然後將一般視圖文件夾。
我的第一個想法是實現一個繼承RazorViewEngine的自定義視圖引擎,它將根據請求域交換ViewLocationFormats字符串。不幸的是,所有這些東西都被埋在了VirtualPathProviderEngine中,不能被覆蓋。
雖然我一直在尋找,並且實施了類似於[this](http://lonetechie.com/2012/09/25/multi-tenant-architecture-with -asp-net-mvc-4 /),所以你只需要一個自定義視圖引擎。如果您沒有在特定域下使用或具有特定視圖的文件夾,則它只會回退到默認視圖。 – Crob