自定义我的MVC路由的具体名称
本文关键字:我的 MVC 路由 自定义 | 更新日期: 2023-09-27 18:13:16
我有这个路由:
http://example.com/home/solucoes但是我想调用http://example.com/any-category/any-thing
我的控制器是"Home",动作是"solucoes"
我试着用它,但不工作
routes.MapRoute(
name: "DefaultSolucoes",
url: "{categoria}/{page}",
defaults: new {
controller = "Home",
action = "solucoes",
categoria = UrlParameter.Optional,
page = UrlParameter.Optional }
);
很可能你的路由在默认路由的下面。问题是,这两条路线基本上是相同的。所以,当默认路由捕获时,它只是寻找一个名为"any-category"的控制器和一个名为"any-thing"的动作。仅仅有不同的参数名并不能区分不同的路由。
你可以把你的路由移到默认路由之上,因为路由是自上而下处理的,第一个匹配的会获胜。然而,你基本上已经让这个路由成为默认路由,因为它将捕获所有标准控制器/动作样式的url。您可以考虑在路由中添加前缀,例如:
url: "categoria/{categoria}/{page}",
那么你的url将是/categoria/any-category/any-thing
的形式,你不会有任何冲突。