Использование PagedList с моделью представления MVC 3 - PullRequest
5 голосов
/ 08 сентября 2011

Я пытаюсь реализовать IPagedList с моделью представления, мое объявление основного представления

@model PagedList.PagedList<CustomerOrders.WebUI.Models.SiteAdminListViewModel>

Затем у меня есть шаблон отображения, который имеет следующее объявление

@model CustomerOrders.WebUI.Models.SiteAdminListViewModel

В моем контроллереЯ передаю модель представления в представление

 return View(new SiteAdminListViewModel(customerSites.ToPagedList(pageIndex, pageSize), customers.ToPagedList(pageIndex, pageSize)));

Это приводит к ошибке: «Для этого словаря требуется элемент модели типа« PagedList.PagedList 'PagedList.PagedList 1 [CustomerOrders.WebUI.Models.SiteAdminListViewModel] '

Я понимаю, о чем говорит ошибка, но я не уверен, как изменить модель представления для включения PagedList, кто-нибудь еще испытал это или кто-то может указать мне правильное направление?

Редактировать ////////////////

Это моя модель представления

public class SiteAdminListViewModel
{
    public IEnumerable<CustomerSite> CustomerSites { get; set; }
    public IEnumerable<Customer> Customers { get; set; }
    public Customer Cust { get; set; }
    public CustomerSite CustSite { get; set; }
    public bool HasPreviousPage { get; set; }
    public bool HasNextPage { get; set; }
    public int PageCount { get; set; }
    public int PageNumber { get; set; }

    public SiteAdminListViewModel()
    {

    }
    public SiteAdminListViewModel(IEnumerable <CustomerSite> customerSites, IEnumerable<Customer> customers)
    {
        CustomerSites = customerSites;
        Customers = customers;
    }
}

Это фрагмент шаблона отображения ////////////

@model CustomerOrders.WebUI.Models.SiteAdminListViewModel
@using (Html.BeginForm())
{
    <p class="search-controls">
    Find site by postcode: @Html.TextBox("SearchString") &nbsp;
    <input type="submit" value="Search" /></p>
}

<td>
        @Model.CustSite.CustomerSiteId
    </td>
    <td>
        @Html.ActionLink(Model.Cust.CustomerName, "Edit", new {  Model.CustSite.CustomerSiteId })
    </td>
    <td>
        @Model.CustSite.AddressLine1
    </td>
     <td>
        @Model.CustSite.Town
    </td>

1 Ответ

7 голосов
/ 08 сентября 2011

Вот один пример, который я нашел, который использует ViewModel с PagedList.

http://czetsuya -tech.blogspot.com / 2011/05 / mvc3-dynamic-search-paging-using.html

...