我有这条路线:
http://example.com/home/solucoes
但我会打电话给http://example.com/any-category/any-thing
我的控制者是“家”,行动是“solucoes”
我尝试使用它,但不能正常工作
routes.MapRoute(
name: "DefaultSolucoes",
url: "{categoria}/{page}",
defaults: new {
controller = "Home",
action = "solucoes",
categoria = UrlParameter.Optional,
page = UrlParameter.Optional }
);
答案 0 :(得分:2)
很可能你的路线低于默认路线。问题在于这两条路线基本相同。因此,当默认路由捕获时,它只是查找名为" any-category"的控制器。和一个名为" any-thing"的动作。简单地使用不同的参数名称并不能区分不同的路径。
您可以将路线移至上方的默认路线,因为路线会自上而下处理并且第一场比赛获胜。但是,您基本上已将此路由设置为默认路由,因为它将捕获所有标准控制器/操作样式URL。您可以考虑为路由添加前缀,例如:
url: "categoria/{categoria}/{page}",
那么您的网址将采用/categoria/any-category/any-thing
的格式,您就不会有任何冲突。