除了默认路由之外,我还有两个路由:
routes.MapRoute("ShopDefault",
"Shop/{id}/{action}",
new { controller = "Shop" });
routes.MapRoute("Shop",
"Shop/{id}/List/{categoryID}",
new { controller = "Shop", action = "List"});第一个路由运行得很好,像.../Shop/3/Index、.../Shop3/Messages这样的链接被正确处理了。
但是对于第二个路由,没有找到像.../Shop/3/List/5这样的链接。有人知道为什么吗?
发布于 2012-09-14 23:35:07
您的更明确的路由应该是首先,路由引擎正在尝试匹配ShopDefault中的商店/Id/操作,然后可能会失败,并在到达您的更明确的商店路由之前给您一个404。
您应该以相反的顺序放置路由:
routes.MapRoute(
"Shop",
"Shop/{id}/List/{categoryID}",
new { controller = "Shop", action = "List"},
new { id= @"\d+" }
routes.MapRoute(
"ShopDefault",
"Shop/{id}/{action}",
new { controller = "Shop" });https://stackoverflow.com/questions/12427682
复制相似问题