2010-02-26 176 views
2

我使用ASP.Net 3.5 SP1“System.Web.Routing”在我的WebForm应用程序中启用URL路由。现在,我需要的是通过在查询字符串如一些参数:ASP.NET System.Web.Routing和查询字符串参数

http://www.mydomain.com/Search/Books/Computers?sort=author&pagesize=10

这是路线我用:

 routes.Add("BooksSearch", new Route 
     (
      "Search/{Category}/{Product}", 
      new CustomRouteHandler("~/Search.aspx") 
     )); 

,因为它被重定向到search.aspx路线是工作正常,但在querystring我找不到额外的参数排序& pagesize。

+0

我仍然无法找到一种方法让它工作..任何指针????? – 2010-03-02 06:32:45

回答

2

您不必将它们添加到您的路线,因为它们将被正常处理。

参数在您的Request.Params集合和里面的邮件Request.QueryString集合中。

+0

Request.Params [“sort”]和Request.QueryString [“sort”]都返回null。我认为这是因为CustomRouteHandler在没有任何QueryString参数的情况下动态初始化目标页面。 – 2010-02-26 15:06:26

+0

从您的接受我认为你已经找到你缺少的参数。 – AxelEckenberger 2010-03-05 08:03:06

3

请使用

Page.RouteData.Values [ “ID”]

代替

的Request.QueryString [ “ID”]

感谢