我有一個MVC 4(目前是反正)我想提供給許多客戶的網站。 我以爲我有聰明的想法,並會創建自定義控制器,然後根據參數或其他選擇使用哪個。MVC路由/動態控制器
每個客戶都有自己的安裝,因此要在編譯時選擇使用的控制器,而不是理想的運行時間。
所以這個想法是爲每個客戶創建一個控制器,例如, Customer1Controller
,Customer2Controller
等,然後映射它,所有的客戶將使用http://myserver/Customer
。
我試圖將所有Customer/{action}
映射到Customer1/{action}
,但我無法找到映射一個語句中的所有操作,並且每個操作都有一個看起來有點難看。
我的第一個想法是嘗試使用依賴注入,但作爲具體類用於顯然不是一個選項的控制器。它也有其他一些缺點。
實際的問題是;無論如何要做一個「全部捕捉」行動?事情是這樣的:
routes.MapRoute(
name: "Import",
url: "Customer/*/{id}",
defaults: new { controller = "Customer1", action = *, id = UrlParameter.Optional }
);
Thanks./H
因爲我測試了這個組合,所以總是路由到Index.default動作。但它現在很好用,非常感謝。 我有一個網站是爲客戶定製的。因此,爲該部分使用不同的控制器的想法(因爲我使用DI來選擇業務邏輯的類),但是不可能或考慮它的一個好主意。有些操作將會不同,我想避免有多個if語句的其他.. – VikingIT