ASP.MVC 3 маршрутизация: как получить URL с включенным действием по умолчанию? - PullRequest
0 голосов
/ 08 ноября 2011

Предположим, у меня есть следующая маршрутизация

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

Теперь, когда вы генерируете URL с помощью Url.Action («Index», «MyController»), вы получите, как и ожидалось: / MyController

Но в одном исключительном случае я хотел бы получить полный URL / MyController / Index (без изменения маршрутизации) ... кто-нибудь знает, возможно ли это?

Ответы [ 2 ]

2 голосов
/ 08 ноября 2011

Это возможно. Но вам нужно изменить маршрутизацию.

  1. Создайте собственный класс маршрутизации, который получает Route
  2. Переопределите метод GetVirtualPath () , чтобы включить /index для страниц, которые в нем нуждаются.
  3. Настройте маршрут по умолчанию, используя вместо этого ваш класс маршрутизации.
1 голос
/ 08 ноября 2011

Боюсь, это невозможно. И это не должно иметь значения, поскольку оба URL-адреса разрешат одно и то же действие контроллера.

...