2014-06-04 225 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