ASP.NET MVC路由和QueryStrings

时间:2011-05-23 22:17:34

标签: asp.net-mvc routing

有人可以用这样的网址告诉我原因......

http://localhost:22220/groups/go/1234/2525?name=Bob

此路线映射不匹配...

routes.MapRoute(null, // Route name
                "groups/go/{groupId}/{userId}/{name}",
                new { controller = "Groups", action = "Go" });

但这个路线映射似乎匹配? (使用Phil Haack的路由测试程序,这是'生成的URL')...

context.MapRoute("Teams_Default",
                 "Teams/{controller}/{action}/{id}",
                 new { id = UrlParameter.Optional });

2 个答案:

答案 0 :(得分:2)

链接必须是: http://localhost:22220/groups/go/1234/2525/Bob

或者你可以改变路线 “基团/去/ {的groupId} / {用户id}”

答案 1 :(得分:0)

由于在该URL上未正确形成最后一个'name'参数,因此第一个路径不匹配。如果您将路线更改为:

routes.MapRoute(null, // Route name
                "groups/go/{groupId}/{userId}/{name}",
                new { controller = "Groups", action = "Go", name = "Bob" });

它会起作用,因为'name'的默认值。

显然,这对你没有好处,因为你想要阅读这个名字。

我认为更大的问题是:该网址是如何生成的?