2010-04-12 57 views
2

我正在使用Martijn Boland提供的尋呼機在我的Asp.Net Mvc 2應用程序中實現分頁。如何在ASP.Net中維護查詢字符串值的頁面Mvc 2

我的表單使用GET方法將所有參數發送到查詢字符串,它是一個包含多個表單元素的搜索表單。

<% using (Html.BeginForm("SearchResults", "Search", FormMethod.Get)) 
     {%> 

在SearchResult所查看我試圖實現分頁:

<div class="pager"> 
    <%= Html.Pager(Model.PageSize, Model.PageNumber, Model.TotalItemCount, 
     new { Request.QueryString })%> 
</div> 

的Html.Pager有一些重載這我不是關於如何使用昭然若揭。 Request.QueryString使查詢字符串看起來像這樣:

http://localhost:1155/Search/SearchResults?QueryString=Distance%3D10%26txtZip%3D%26cb&page=2 

它應該不是這樣嗎?

http://localhost:1155/Search/SearchResults?Distance=20&txtZip=10021&page=2 
+0

我列出了兩個查詢字符串參數,還有幾個,我試圖避免單獨列出它們。 – Picflight 2010-04-13 02:41:19

+0

您是否看到我的編輯,您必須將QueryString轉換爲IDictionnary,並將其傳遞給nen RouteValueDictionnary構造函數 – 2010-04-13 17:36:34

回答

1

我的猜測是寫你的呼機像這樣

<%= Html.Pager(Model.PageSize, Model.PageNumber, Model.TotalItemCount, new { Distance = Request["Distance"], txtZip = Request["txtZip"] })%> 

,但我從來沒有使用過,這只是一種猜測,...

編輯:看到ASP.Net MVC Keeping action parameters between postbacks 所以你必須從QueryString這是一個NameValueCollection創建一個RouteValueDictionary

+0

有兩個以上的參數,所以我試圖避免單獨列出它們。 – Picflight 2010-04-13 02:42:23

+1

我想這麼回答這個答案(編輯:部分)。創建一個幫助器函數將查詢字符串參數轉換爲RouteValueDictionary並將其提供給傳呼機。也許ASP.NET MVC已經包含這樣的功能? – martijnboland 2010-04-14 08:16:14

+0

+1用於響應Martijn。 – Picflight 2010-04-16 06:35:57

相關問題