如何在MVC 5中覆盖路由

时间:2017-01-17 18:47:26

标签: asp.net-mvc-5

我有两个控制器controllerOne在AreaOne区域下定义。我需要将controllerOne中定义的一个操作重新路由到controller2中定义的操作。我尝试了属性路由,但它无法正常工作。我目前的代码如下:

Controller One中的操作

 public class ControllerOne
    {   public ActionResult CustomerSearch()
    {

                return View("Search", model);
    }
}

控制器二中的操作

[Route("AreaOne/ControllerOne/CustomerSearch")]
     public class ControllerTwo
        {   public ActionResult CustomCustomerSearch()
        {

                    return View("Search", model);
        }
    }

我怎样才能做到这一点。?

1 个答案:

答案 0 :(得分:2)

在RouteConfig.cs中,您可以使用routes.MapRoute将您的网址与任何控制器&你的项目中的行动。

            routes.MapRoute(
                name: "OverrideCustomerSearch",
                url: "AreaOne/ControllerOne/CustomerSearch",
                defaults: new { controller = "Two", action = "CustomCustomerSearch" }
        );