2013-07-25 40 views
-1

我有一个动作,它将调用服务(而不是数据库)来获取一些数据以供显示,并且我想对这些数据进行分页。但是,每次单击第二个页面时,它会调用这个动作,当然再次调用服务,实际上当我点击第一页链接时,它已经生成了包括第二页需要的全部数据。我只想调用一次服务并获取所有数据,然后在分页时,我不需要再次调用服务,我该如何处理该问题?希望有人能给我一个提示〜mvc4在分页动作和视图之间传递数据

回答

0

There有几种方法可以解决这个问题。如果实用且数据量有限,则可以在第一个请求中返回整个数据集。 如果这是你的情况,我会考虑返回一个纯JSON对象,当你最初加载页面。然后,您可以将其反序列化为网页上的JS对象变量,您可以对其执行分页操作。这是客户端分页的一个例子,其中所有数据都存在客户端。

另一种方法是基于Ajax进行分页,根据需要请求下一页的数据。我仍然建议在这种情况下返回JSON。

这两种方法的不同之处在于,第一种方法预先返回所有数据,而第二种只返回您需要渲染任何给定页面的内容。

+0

我想每个网页都有一个唯一的网址(实际上是一个带页面参数的网址),所以我认为第一种方法(使用按钮和js)可能无法工作。关于第二种方法,因为服务只能获得整个数据(事实上,服务就像是全文搜索),所以即使我使用ajax,每次我调用ajax时,它仍然会返回整个数据。 – user2591555

+0

我想一个方法来限制每次运行查询的性能热点是缓存服务器上的搜索结果。这样你可以根据url分页参数在内存中进行分页 – TGH