Asp.net mvc ASP.NET路由值不与映射的路由混合

Asp.net mvc ASP.NET路由值不与映射的路由混合,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,我绘制了这条路线图: routes.MapRoute( "SingleUser", // Route name "Users/{username}", // URL with parameters new {area="", controller = "Users", action = "SingleUser"}, // Parameter defaults ); 这个代码不应该: return RedirectToAction("Index", "Users", n

我绘制了这条路线图:

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

如果您定义了专用路由,那么应该使用
重定向路由

return RedirectToRoute("SingleUser", new { username = "someUser" });
发生的情况是MVC正在退回到默认路由(“{controller}/{action}”)

未定义专用路由时,请使用
重定向到操作


使用
ActionLink
RouteLink

@Lol-nice生成链接也是如此。但没有徽章。:)