ASP.NET Webform Routing
问题描述:
我们正在构建产品站点并使用ASP.NET WebForms C#中的路由。 我们目前有ASP.NET Webform Routing
routes.MapPageRoute("", "{categoryName}", "~/Category.aspx");
routes.MapPageRoute("", "{categoryName}/{subCategoryname}", "~/SubCategory.aspx");
它的伟大工程..
鞋/女装,鞋/童装,鞋/男装,鞋/女装。
我们希望添加了一个新的途径来获得以下resutls
产品/山地光男装远足靴
所以我们现在我们的路由器有
routes.MapPageRoute("", "{categoryName}", "~/Category.aspx");
routes.MapPageRoute("", "{categoryName}/{subCategoryname}", "~/SubCategory.aspx");
routes.MapPageRoute("", "Product/{productName}", "~/Product.aspx");
但是,当我们去/产品/ Mountain-Light-Mens-Hiking-Boots路由器启动SubCategory.aspx,这不是我们想要发生的事情。我们希望启动这个产品。
我知道路由器不知道'产品'是否是一个categoryName或不是。
如何为/ Products添加另一根级别路由?
答
更改代码才能这样
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模式应位于和路由集合处。
这工作! - 如何“知道”? :) – 2013-03-07 21:42:04