Asp.net mvc 4 覆盖控制器路由

Asp.net mvc 4 覆盖控制器路由,asp.net-mvc-4,routes,Asp.net Mvc 4,Routes,我使用的是ASP.NETMVC5,我希望动态选择哪个控制器处理特定的请求 例如,用户可能会请求/ControllerName/ActionName/,但我想首先查看我的源代码中是否有controller/customcodedirectry/ControllerName/ActionName。如果我有那个控制器,那么就用它来处理请求。如果我没有,那么就继续使用请求的控制器 关键是我不想让用户知道他们被转移到了另一个url。最后,这个问题的答案是在映射路由时提供名称空间。具体而言: routes.

我使用的是ASP.NETMVC5,我希望动态选择哪个控制器处理特定的请求

例如,用户可能会请求/ControllerName/ActionName/,但我想首先查看我的源代码中是否有controller/customcodedirectry/ControllerName/ActionName。如果我有那个控制器,那么就用它来处理请求。如果我没有,那么就继续使用请求的控制器


关键是我不想让用户知道他们被转移到了另一个url。

最后,这个问题的答案是在映射路由时提供名称空间。具体而言:

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

我找到了我的答案

你不认为这可能是额外的成本吗?我一定会在负载测试环境中运行它。但我没想到会花很多钱。这与MVC的工作原理类似。我见过做类似事情的视图引擎。