Значения маршрутов ASP.NET не смешиваются с сопоставленными маршрутами - PullRequest
0 голосов
/ 21 сентября 2011

У меня есть этот маршрут:

routes.MapRoute(
    "SingleUser", // Route name
    "Users/{username}", // URL with parameters
    new {area="", controller = "Users", action = "SingleUser"}, // Parameter defaults
 );

Не должен ли этот код:

return RedirectToAction("Index", "Users", new {username = "someUser"});

перенаправить на этот URL: localhost/Users/someUser?

Вместо этого он возвращает меня к: localhost/Users?username=someUser

1 Ответ

0 голосов
/ 21 сентября 2011

Если вы определили специализированный маршрут, то вам следует использовать RedirectToRoute.

return RedirectToRoute("SingleUser", new { username = "someUser" });

Происходит следующее: MVC возвращается к маршруту по умолчанию ("{controller} / {action}").

Используйте RedirectToAction, если не определен специализированный маршрут.

То же самое относится к генерации ссылок с ActionLink и RouteLink.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...