覆盖控制器路由

时间:2014-06-04 23:01:18

标签: asp.net-mvc-4 routes

我正在使用ASP.NET MVC 5,我正在寻找动态选择哪个控制器处理特定请求。

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

这方面的关键是我不希望用户知道他们被转移到另一个网址。

1 个答案:

答案 0 :(得分:0)

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

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

我找到了答案here