我的网站使用类别和子类别。
我想要跟随映射:
/分类/水果
/类别/水果/苹果
但如果我使用以下内容:
routes.MapRoute(
"Category", // Route name
"Category/{category}/{subcategory}", // URL with parameters
new { controller = "Entity", action = "Category" } // Parameter defaults
);
我获得404 / Category / Fruit但是/ Category / Fruit / Apples可以正常工作。我希望/ Category / Fruit能够正常工作,但我不能添加另一条同名的路线。我该如何解决这个问题?
提前致谢。
答案 0 :(得分:1)
指定subcategory
routes.MapRoute(
"Category", // Route name
"Category/{category}/{subcategory}", // URL with parameters
new { controller = "Entity", action = "Category", subcategory = "Some value" } // Parameter defaults
);
答案 1 :(得分:0)
路由规则不需要名称。您可以将其设置为null。
如果您将第二个参数标记为可选,则可以使用唯一规则来描述路由。或者将第二个参数默认值设置为:zerkms建议
答案 2 :(得分:0)
Phil Haack在他的博客上有一个route debugger。
此实用程序显示从地址栏中当前请求的请求中提取的路径数据。因此,您可以在地址栏中输入各种URL以查看哪条路线匹配
答案 3 :(得分:0)
这适用于您的场景
routes.MapRoute(
"Default", // Route name
"Category/{category}/{subcategory}/{id}", // URL with parameters
new { controller = "fruit", action = "apples", id = UrlParameter.Optional } // Parameter defaults
);