如何使用 MVC C# 控制器在 JSON 服务端分页中包含总计数

How to include total Count in JSON service Side Paging with MVC C# Controller

我正在使用 MVC C# 进行分页,我有一个如下所示的控制器:

public ActionResult GetPage(int page, int pageSize)
{
 var dbContext = new DbContext();
 var jobs = dbContext.Jobs.OrderBy(job=>job.Id).skip(page * pageSize).Take(pageSize);
 return Json(jobs, JsonRequestBehavior.AllowGet);
 }

如果可能,我想 return 作业总数而不需要第二次 ajax 调用。是否有可能以某种方式将作业的总数添加到响应中?

创建一个容器class 来同时保存作业列表和作业总数。如下所示。

public class JobsResult
{
  List<Job> CurrentBatch {get;set;}
  int TotalJobCount {get;set;}
}

设置属性并return此结果来自您的控制器方法。

您可以进行以下操作:

public ActionResult GetPage(int page, int pageSize)
{
    var dbContext = new DbContext();
    int count=(from j in dbContext.Jobs select j).Count();
    var jobs = dbContext.Jobs.OrderBy(job=>job.Id).skip(page * pageSize).Take(pageSize);
    return Json(new { jobs = jobs, total = count },JsonRequestBehavior.AllowGet );
}