2014-06-04 285 views
0

我正在使用ASP.NET MVC 5,我正在尋找動態選擇哪個控制器處理特定請求。覆蓋控制器路由

例如,用戶可能會請求/ControllerName/ActionName/,但我想先查看一下,看看我的源中是否有控制器/CustomCodeDirecotry/ControllerName/ActionName。如果我有那個控制器,那就用它來處理請求。如果我不這樣做,請繼續使用請求的控制器。

其中的關鍵是我不希望用戶知道他們被移交給不同的網址。

+0

難道你不認爲這可能是額外的費用? – PEO

+0

我一定會在負載測試環境中運行它。但我不會認爲這會花費太多。這與MVC的工作方式類似。我見過查看引擎做類似的事情。 –

回答

0

最後,這個問題的答案是在映射路由時提供一個命名空間。具體做法是:

routes.MapRoute(
name: "Default", 
url: "{controller}/{action}/{id}", 
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 
namespaces: new[] { "MvcSite.Special.Controllers" }); 

我發現我的答案here