我想使用MvcPager3向我的一个视图添加分页。这将很简单,除非我已经使用AutoMapper将我的模型映射到一个简单的视图模型。
List<Call> calls = (from p in db.Calls orderby p.ID descending select p).ToList();
var viewModel = new List<CallListItem>();
Mapper.Map(calls, viewModel);
return View(viewModel);我想这可能和替换这行代码一样简单
var viewModel = new List<CallListItem>();有了这个
var viewModel = new PagedList<CallListItem>();但是PagedList有一个构造函数,它接受一个项目列表。既然automapper将为我做这件事,我想我也许可以传递null,但它不起作用。
有没有人有过协调使用这两个组件的经验?
谢谢
编辑:
找到了一个名为PagedList的MvcPager替代方案。它要好得多,因为它有一个StaticPagedList类,您可以使用它来处理已经被分页的数据。
发布于 2012-01-16 06:02:20
您可以在映射之后对视图模型进行分页:
var calls = (from p in db.Calls orderby p.ID descending select p).ToList();
var viewModel = Mapper
.Map<IEnumerable<Call>, IEnumerable<CallListItem>>(calls)
.ToPagedList(currentPage, pageSize);
return View(viewModel);发布于 2013-05-05 22:07:44
或者,您可以先分页,然后使用StaticPagedList进行映射。这对我很有效:
var calls = (from p in db.Calls orderby p.ID descending select p).ToPagedList();
var viewModel = Mapper.Map<IEnumerable<CallListItem>>(calls);
return new StaticPagedList<CallListItem>(viewModel, calls);我这样做是因为我不想为了稍后分页而列出所有对象。
基于这个漂亮的post。
https://stackoverflow.com/questions/8873707
复制相似问题