Asp.Net 4.0中的URL路由(具有相同RouteUrl的不同页面)

时间:2015-08-20 18:41:35

标签: c# asp.net-4.0

我有两页“Product.aspx”& “Category.aspx”。使用URL路由我想更改页面的URL。

这是我的代码:

URLRoute.cs

public static void RegisterRoutes(RouteCollection routes)
{     
   routes.Ignore("{resource}.axd/{*pathInfo}");

   routes.MapPageRoute("Product", "{CategoryName}/{ProductName}","~/Product.aspx");
   routes.MapPageRoute("Category", "Category/{CategoryName}", "~/Category.aspx");
}  

当我使用此代码时

<a href="Mobile/Samsung"> Go To Product.aspx Page </a>
<a href="Category/Mobile"> Go To Category.aspx Page </a>

时间它在Product.aspx页面上重定向,而它应该是不同的页面。

注意:网址必须与此类似

for Product.aspx页面:www.example.com/Mobile/Samsung
这里的手机是类别名称,三星是产品名称(两者都是动态的)。

对于Category.aspx页面:www.example.com/category/Mobile
此类别是静态类别名称,移动设备是类别名称(类别名称动态)。

1 个答案:

答案 0 :(得分:1)

订单在路由中很重要。 Category/Mobile匹配{CategoryName}/{ProductName}CategoryName的值为“类别”)。

更改

routes.MapPageRoute("Product", "{CategoryName}/{ProductName}","~/Product.aspx");
routes.MapPageRoute("Category", "Category/{CategoryName}", "~/Category.aspx");

routes.MapPageRoute("Category", "Category/{CategoryName}", "~/Category.aspx");
routes.MapPageRoute("Product", "{CategoryName}/{ProductName}","~/Product.aspx");

它应该按预期工作。