2012-06-29 45 views
1

在ASP.net MVC中,我使用Url.RouteUrl & Html.RouteLink在我的頁面中創建一些鏈接。RouteUrl + RouteLink同時保留當前查詢字符串值

考慮以下默認路徑:

routes.MapRoute(
    null, 
    "{controller}/{action}/{id}", 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
); 

使用Url.RouteUrl(new { controller = "Products", action = "List", sort = "newest" })會產生URL /Products/List?sort=newest

到目前爲止,這正是我想要的。我不確定如何完成以下內容。如果我目前在/Products/List?sort=newest。我需要提供一個URL用戶更改每頁上市的產品數量:

`/Products/List?sort=newest&pagesize=30` 

如何使用Url.RouteUrl生成以下網址,以便:如果我目前

  • 在排序=最新的頁面上,它保留下面的值:/ Products/List?sort = newest & pagesize = 30
  • 如果我當前在沒有排序的頁面上,它會省略它:/ Products /列表?pagesize = 30

舉個例子,我的意思是,你可以看看stackoverflow。如果我查看問題並更改以查看精選問題,然後單擊底部的頁面大小,它將保留排序,但會將頁面大小追加到URL。

回答

2
Url.RouteUrl(
    new { 
     controller = "Products", 
     action = "List", 
     sort = Request["sort"], 
     pagesize = "30" 
    } 
) 

如果這是從​​調用它會產生/Products/List?pagesize=30。如果從/Products/List?sort=newest調用它將產生/Products/List?sort=newest&pagesize=30

相關問題