Я пытаюсь выяснить, как правильно реализовать список страниц с ViewModel в asp.net MVC.
Скажем, у меня есть следующая 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?