我试图找出在 asp.net MVC 中使用 ViewModel 实现 pagedlist 的正确方法。
假设我有以下 PagedClientViewModel:
public class PagedClientViewModel
{
public PagedList.IPagedList<ClientViewModel> Clients { get; set; }
}
public class ClientViewModel
{
public string ClientNumber { get; set; }
public string ClientName { get; set; }
}
我的观点将引用模型如下:
@model PagedClientViewModel
并且操作方法看起来像这样:
public ActionResult Index(int? page)
{
var pageNumber = page ?? 1;
var clients = GetAllClients();
var onePageOfClients = clients.ToPagedList(pageNumber, 25);
PagedClientViewModel model = new PagedClientViewModel();
var clientViewModels = new List<ClientViewModel>();
foreach (var client in clients)
{
ClientViewModel clientVM = new ClientViewModel
{
ClientName = client.CLIENTNAME,
ClientNumber = client.CLIENTNO,
};
clientViewModels.Add(clientVM);
}
model.Clients = //how do I add the clientViewModels to the PagedList<ClientViewModel>?
return View(model);
}
在创建视图模型时,我不想从数据库中迭代整个客户端记录列表 - 我是否通过使用包含分页列表的视图模型使事情变得过于复杂?我不想使用 ViewBag!
我的 ViewModel 应该是什么样的?