Mvc Action Link не использует правильный маршрут - PullRequest
0 голосов
/ 01 марта 2012

У меня есть следующие маршруты, и я набираю их в браузере и работает нормально, и маршруты правильно, но если я использую Html.ActionLink, он пытается использовать маршрут DefaultStuff.

Маршруты

_routes.MapStuffRoute(
    "DefaultStuff",
    "stuff/{controller}/{id}",
    new { id = UrlParameter.Optional },
    new[] { typeof(BaseApiController).Namespace });

_routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional },
    new[] { typeof(BaseController).Namespace });

Страница

@Html.ActionLink("Job Queues", "Index", "Job") // generates http://localhost/stuff/job?action=Index

Чего мне не хватает, чтобы ActionLink мог сгенерировать http://localhost/stuff/index. Изменение маршрутов в ActionLink верное, но Stuff не работает. Просто примечание, StuffRoute устанавливает имя действия на основе информации в запросе.

1 Ответ

1 голос
/ 01 марта 2012

Кажется, что вы на самом деле пытаетесь сопоставить контроллер "Работа" с вещами. В настоящее время ваш маршрут DefaultStuff не разрешает действие, поэтому он помещает его как значение строки запроса.

_routes.MapRoute(
"DefaultStuff",
"stuff/{action}/{id}",
new { controller="Job", id = UrlParameter.Optional },
new[] { typeof(BaseApiController).Namespace });
...