如何在使用视图模型时在 mvc 中实现分页列表
本文关键字:mvc 实现 分页 列表 模型 视图 | 更新日期: 2023-09-27 18:36:07
我在 mvc 4 中使用视图模型概念。我正在将数据发布到数据库,并且一旦帖子显示在下面的网格中。 所以我使用了视图模型概念。这是我的模特课
public class MyViewModel
{
public document upload_document { get; set; }
public IList<document> Upload_List { get; set; }
}
我在文档中有很多字段,所以我不发布字段。我浏览了一些文章,他们返回的内容如下:return View(students.ToList());where student is var
.但是我正在所有操作方法中返回模型。也鉴于他们写了
@model PagedList.IPagedList<ContosoUniversity.Models.Student>
@using PagedList.Mvc;
但我有这个观点
@model c3card.Dal.EDModel.MyViewModel
那么,如何返回包含页码,页面大小的模型?使用视图模型时如何使用此分页列表概念?
如果您需要映射实体以查看模型并且仍然能够分页浏览它们,则需要使用 StaticPagedList
.为了使使用 PagedList
的标准方法正常工作,需要向其传递可查询(未评估),以便它可以将查询限制为仅拉取适当数量的记录。但是,如果您要映射到视图模型,则将评估查询。
您需要的是:
public ActionResult Students(int? page)
{
var pageNumber = page ?? 1;
var pageSize = 10;
var totalStudents = db.Students.Count();
var students = db.Students.Skip((pageNumber - 1) * pageSize).Take(pageSize);
var model = // map `students` to your view model
var pagedList = new StaticPagedList<MyViewModel>(model, pageNumber, pageSize, totalStudents);
return View(pagedList);
}
然后,视图的模型为:
@model PagedList.IPagedList<Namespace.To.MyViewModel>