如何在MVC视图中生成页面链接(API方法已经返回分页结果)



我是MVC和Web API的新手

我正在使用一个Web API搜索方法,传递变量startIndex_pageSize,该方法返回记录列表和记录的totalCount(下面的JSON示例(。我的MVC查看页面中有一个表,该表显示了返回数据和总数。

{
    "errors": [],
    "result": {
        "fileCount": 30,
        "infoList": [
            {
                "fileId": "7dcaf6b2-d97b-4234-8a33-344484375f09",
                "integratingApplicationId": "6775bd47-00b5-4864-9f42-5b6ef9d69837",
                "applicationDescription": "SSIS letter",
                "createdDate": "2019-06-12T11:01:39.03",
            }
}
}

在我的MVC视图中,我想添加页面的链接,以便用户可以导航到下一个或上一页(或页码(,只是想知道最好的方法是什么?我需要在控制器中添加分页逻辑,还是可以在视图中使用JavaScript来生成链接?

您可以同时做,最简单的是,在将其发送到视图之前,只需使用部分视图构建分页并填充它即可。在这种情况下,您无需在前端做任何事情。

无论哪种方式,都非常容易。

以这种方式考虑,您需要什么才能建立分页?您需要生成一些看起来像这样的链接:

blabla/morebla/data?indexPage=index其中索引是您要显示的任何页码。您需要知道该索引的范围,从1到任何内容。

您的页面大小,假设是20。您有数据告诉您您有30个记录。因此,您将需要2页来显示数据,以便使用索引1和2创建超链接。您可以轻松提出一个公式来决定需要多少页。您将记录大小(30(划分为页面尺寸(20(,如果其更高的mod高于零,则将1次添加到页面索引。

类似的东西:

int pageTotal = ( recordsCount / pageSize ),您以int的结果(在您的情况1中(进行INT结果,如果此操作的模量高于0(它是(,则在页面计数中添加1个,因此您得到了两个。您需要第二页来显示数据的最后10个记录。

现在剩下的就是在foreach循环中构建链接,因此在这种情况下,您已经计算了两个链接,因为您已经计算了 pagetotal

blabla/morebla/data?indexPage=1
blabla/morebla/data?indexPage=2

小心您如何将索引发送到API,UI上的索引1实际上是API端的索引0,但是您只想从可用性的角度在UI上显示1,因此您可能有在您的代码中进行一些调整以说明这一点。

您不需要任何插件,您可以在后端或前端侧进行操作,无论您是否更舒适。

最新更新