如何使用 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 );
}
我正在使用 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 );
}