由Url.Action生成的Asp.Net MVC错误的URL!

Pat*_*cia 3 asp.net-mvc routes

我搜索并阅读了我在这里和谷歌找到的所有问题,我似乎无法找到答案!

Rout的问题是这样的:

routes.MapRoute("Admin - Change Password", "Admin/ResetPassword/{UserId}", New With {.controller = "Admin", .action = "ResetPassword", .UserId = ""})
Run Code Online (Sandbox Code Playgroud)

它生成的Url是:/ Admin/UserAdmin

这是url.action所在的页面.不知道这是否重要.

当我使用路由调试器时,它显示了Url我希望它生成匹配我在地址栏中输入的URL.

True Admin/ResetPassword/{UserId} controller = Admin,action = ResetPassword,userId =

它匹配的唯一其他路线是:

True {controller}/{action}/{id} controller = Home,action = Index,id =

真{*catchall}(null)

{controller}/{action}/{id}路由是最后一个路由,因此它不应该干扰.

有任何想法吗?

编辑:帮助者的代码:

<%Url.Action("ResetPassword", "Admin", new with {.UserId= u.userId}) %>
Run Code Online (Sandbox Code Playgroud)

Cra*_*ntz 7

不要使用Action/ ActionLink为命名路由生成URI.使用RouteLink/ RouteUrl,而不是.它更快,它永远不会找到你想要的路线.完整的解释在这里.