Как заставить ссылку использовать определенный маршрут (маршрутизация MVC) - PullRequest
2 голосов
/ 17 мая 2011

У меня есть эти два маршрута:

routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

        routes.MapRoute(
            "Default2", // Route name
            "{controller}/{action}/{OrderId}/{CustomerID}", // URL with parameters
            new { controller = "NorthwindOrders", action = "Index", OrderId = UrlParameter.Optional, CustomerID = UrlParameter.Optional } // Parameter defaults
        );

и я хочу создать ссылку, которая использует второй маршрут.

Как я могу это сделать?

Ответы [ 4 ]

3 голосов
/ 17 мая 2011

Если вы хотите специально использовать маршрут, вы можете использовать Html helper Html.RouteLink:

<%= Html.RouteLink("my link", "Default2", new {OrderId=1, CustomerId=2}) %>

Также вы можете поставить второй маршрут первым: самый общий маршрут должен быть в конце, для использования только тогда, когда не найден конкретный маршрут.

0 голосов
/ 07 мая 2015

На самом деле не 100% того, что запрашивал ОП, но мне был нужен ActionResult, который принудительно использует определенный маршрут.RedirectToAction всегда использовал неправильный маршрут.Я нашел это в RedirectToRoute("RouteName", new { action="Index" }).

0 голосов
/ 17 мая 2011

Также вы должны использовать определение маршрутов в другом порядке.порядок должен быть более конкретным сначала меньше

также в ваших ссылках действий я бы добавил параметры маршрутизации

0 голосов
/ 17 мая 2011

Заказ очень важен с MapRoutes. Попробуйте поменять порядок этих двух утверждений.

...