我们正在构建产品站点并在ASP.NET WebForms C#中使用路由。 我们目前有
routes.MapPageRoute("", "{categoryName}", "~/Category.aspx");
routes.MapPageRoute("", "{categoryName}/{subCategoryname}", "~/SubCategory.aspx");
效果很好..
鞋子/女装,鞋/童装,靴子/男装,靴子/女装。
我们添加了一条新路线,希望获得以下结果
产品/山型光男装-远足靴
所以我们现在的路由器已经
了routes.MapPageRoute("", "{categoryName}", "~/Category.aspx");
routes.MapPageRoute("", "{categoryName}/{subCategoryname}", "~/SubCategory.aspx");
routes.MapPageRoute("", "Product/{productName}", "~/Product.aspx");
然而,当我们去 / Product / Mountain-Light-Mens-Hiking-Boots 时,路由器会触发 SubCategory.aspx ,这不是我们想要发生的事情。我们希望 Product.aspx 启动。
我知道路由器不知道'Prodcut'是否是categoryName。
如何为/ Products添加其他根级别路由?
答案 0 :(得分:2)
像这样更改您的代码顺序
routes.MapPageRoute("", "Product/{productName}", "~/Product.aspx");
routes.MapPageRoute("", "{categoryName}/{subCategoryname}", "~/SubCategory.aspx");
routes.MapPageRoute("", "{categoryName}", "~/Category.aspx");
订单非常重要。因为您输入的网址如“www.domain.com/abc/abc”和
routes.MapPageRoute("", "{categoryName}/{subCategoryname}", "~/SubCategory.aspx");
第三号那条路线从未打过电话。它按照路线呼叫。
routes.MapPageRoute("", "{categoryName}", "~/Category.aspx");
价值将会是。
string Value= Page.RouteData.Values["categoryName"].ToString();
Value= "abc/abc";
因此,包含一个参数的Url Pattern应位于和Route Collection。