【问题标题】:Url Routing in Asp.Net 4.0 (Different Pages with same RouteUrl)Asp.Net 4.0 中的 URL 路由(具有相同 RouteUrl 的不同页面)
【发布时间】:2015-08-20 18:41:34
【问题描述】:

我有两个页面“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 页面上重定向,而它应该转到不同的页面。

注意:网址必须是这样的

对于 Product.aspx 页面:www.example.com/Mobile/Samsung
这里 Mobile 是类别名称,samsung 是产品名称(都是动态的)。

对于 Category.aspx 页面:www.example.com/category/Mobile
这里 category 是静态类别名称,mobile 是类别名称(类别名称是动态的)。

【问题讨论】:

  • 只需先切换顺序:MapPageRoute 用于类别,然后是产品。当ASP.NET 尝试匹配一个路由时,它会从第一个路由开始,一直持续到找到匹配为止。在您的情况下,{CategoryName}/{ProductName} 将始终匹配两条路线,并且永远不会转到类别路线。
  • 非常有趣。非常感谢。
  • routes.MapPageRoute("Blog", "{BlogName}-{BlogID}", "~/AllBlog.aspx"); routes.MapPageRoute("Tour", "{TourName}", "~/AllTour.aspx");在这种情况下,两个页面都在 AllBlog.aspx 上重定向,但我需要 AllBlog.aspx 上的博客和 AllTour.aspx 页面上的游览。注意:我不想要 blog/blogname 这样的目录。

标签: c# asp.net-4.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");

它应该可以按预期工作。

【讨论】:

  • routes.MapPageRoute("Blog", "{BlogName}-{BlogID}", "~/AllBlog.aspx"); routes.MapPageRoute("Tour", "{TourName}", "~/AllTour.aspx");在这种情况下,两个页面都在 AllBlog.aspx 上重定向,但我需要 AllBlog.aspx 上的博客和 AllTour.aspx 页面上的游览。注意:我不想要 blog/blogname 这样的目录。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-28
  • 2011-07-29
  • 2018-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多