这是可用的路由:
routes.MapRoute(
"Default", // 路由名称
"{controller}/{action}/{id}", // 带有参数的 URL
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数默认值
);
routes.MapRoute(
"Products", // 路由名称
"{controller}/{action}/{ptype}", // 带有参数的 URL
new { controller = "Home", action1 = "producs", ptype = UrlParameter.Optional} // 参数默认值
);
routes.MapRoute(
"WorksPage", // 路由名称
"{controller}/{action}/{cid}/{page}", // 带有参数的 URL
new { controller = "Home", action = "Works", cid= UrlParameter.Optional,page=UrlParameter.Optional } // 参数默认值
);
这是出错的路由:
routes.MapRoute(
"Default", // 路由名称
"{controller}/{action}/{id}", // 带有参数的 URL
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数默认值
);
routes.MapRoute(
"Products", // 路由名称
"{controller}/{action}/{ptype}/{pbus}/{pcolor}/{pprice}/{page}", // 带有参数的 URL
new { controller = "Home", action = "producs", ptype = UrlParameter.Optional,pbus=UrlParameter.Optional,pcolor=UrlParameter.Optional ,pprice=UrlParameter.Optional,page=UrlParameter.Optional} // 参数默认值
);
routes.MapRoute(
"WorksPage", // 路由名称
"{controller}/{action}/{cid}/{page}", // 带有参数的 URL
new { controller = "Home", action = "Works", cid= UrlParameter.Optional,page=UrlParameter.Optional } // 参数默认值
);
第二个路由本身是无用的,一只没删除,就直接在后面加了第三个路由,谁知一直报错。
测试了好多遍,删除第二段路由一切正常,这时很是纳闷,于是乎开始一个个测试第二个路由的每个参数。
发现删除掉第二个路由的一部分参数后,一切正常了。现在还是没找到具体原因,以后有时间再研究,不知道MVC 4.0与5.0是否还有此bug。