2013-07-25 45 views
-1

我有一個動作,它將調用服務(而不是數據庫)來獲取一些數據以供顯示,並且我想對這些數據進行分頁。但是,每次單擊第二個頁面時,它會調用這個動作,當然再次調用服務,實際上當我點擊第一頁鏈接時,它已經生成了包括第二頁需要的全部數據。我只想調用一次服務並獲取所有數據,然後在分頁時,我不需要再次調用服務,我該如何處理該問題?希望有人能給我一個提示〜mvc4在分頁動作和視圖之間傳遞數據

回答

0

There有幾種方法可以解決這個問題。如果實用且數據量有限,則可以在第一個請求中返回整個數據集。 如果這是你的情況,我會考慮返回一個純JSON對象,當你最初加載頁面。然後,您可以將其反序列化爲網頁上的JS對象變量,您可以對其執行分頁操作。這是客戶端分頁的一個例子,其中所有數據都存在客戶端。

另一種方法是基於Ajax進行分頁,根據需要請求下一頁的數據。我仍然建議在這種情況下返回JSON。

這兩種方法的不同之處在於,第一種方法預先返回所有數據,而第二種只返回您需要渲染任何給定頁面的內容。

+0

我想每個網頁都有一個唯一的網址(實際上是一個帶頁面參數的網址),所以我認爲第一種方法(使用按鈕和js)可能無法工作。關於第二種方法,因爲服務只能獲得整個數據(事實上,服務就像是全文搜索),所以即使我使用ajax,每次我調用ajax時,它仍然會返回整個數據。 – user2591555

+0

我想一個方法來限制每次運行查詢的性能熱點是緩存服務器上的搜索結果。這樣你可以根據url分頁參數在內存中進行分頁 – TGH