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

时间:2009-11-16 20:58:40

标签: asp.net-mvc routes

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

问题中的Rout是这样的:

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

它产生的网址是: / Admin / UserAdmin

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

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

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

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

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

True {* catchall}(null)

{controller} / {action} / {id}路由是最后一个路由,所以它不应该干扰。

任何想法?

编辑:帮助者的代码:

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

2 个答案:

答案 0 :(得分:7)

不要使用Action / ActionLink为命名路由生成URI。请改用RouteLink / RouteUrl。它更快,而永远无法找到您想要的路线。完整解释here

答案 1 :(得分:0)

所以我认为问题在于,当您运行应用程序时,您没有被定向到您期望的视图?

您使用的是哪个版本的IIS?如果您使用的是XP / IIS 5.1,是否确保添加通配符映射?这是IIS 5.1的常见问题。

您可以参考链接here