我有这个网址http://localhost:17643/category/1/Home/Arts/
它应该重定向到home / index?idCategory = 1
相反,我得到了一个找不到的页面。
RouteRegistrar是:
routes.MapRoute(
"Category",
"category/{idCategory}/{categories}",
new { controller = "home", action = "index", idCategory = "" }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
谢谢
答案 0 :(得分:3)
尝试更改将通配符添加到类别位:
routes.MapRoute(
"Category",
"category/{idCategory}/{*categories}",
new { controller = "home", action = "index", idCategory = "" }
);
这将允许类别部分之外的所有内容都包含在类别中。
如果您还不知道路由的第一条规则是:
将使用找到的第一个匹配路线将忽略所有前进路线,因此请确保先将最具体的路线放在首位。
答案 1 :(得分:2)
我强烈建议您查看routing debugger by Phil Haack。在尝试找出路由未按预期运行的原因时,这是非常宝贵的。
答案 2 :(得分:0)
routes.MapRoute(
"Category",
"home/index/{idCategory}",
new { controller = "home", action = "index", idCategory= "" }
);
这会将您重定向到/ home / index?idCategory = 1