将PagedList与viewmodel MVC 3一起使用

Lia*_*am 5 c# asp.net-mvc pagedlist asp.net-mvc-3 asp.net-mvc-viewmodel

我试图用viewmodel实现IPagedList,我的主视图声明是

@model PagedList.PagedList<CustomerOrders.WebUI.Models.SiteAdminListViewModel>
Run Code Online (Sandbox Code Playgroud)

然后我有一个显示模板,它具有以下声明

@model CustomerOrders.WebUI.Models.SiteAdminListViewModel
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我将viewmodel传递给视图

 return View(new SiteAdminListViewModel(customerSites.ToPagedList(pageIndex, pageSize), customers.ToPagedList(pageIndex, pageSize)));
Run Code Online (Sandbox Code Playgroud)

这会导致错误,"此字典需要类型为'PagedList.PagedList 'PagedList.PagedList1 [CustomerOrders.WebUI.Models.SiteAdminListViewModel]' 的模型项

我理解错误是什么,但我不确定如何修改视图模型以包含PagedList,有没有其他人经历过这个或者有人能指出我正确的方向吗?

编辑////////////////

这是我的viewmodel

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是显示模板的片段////////////

@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>
Run Code Online (Sandbox Code Playgroud)

Pri*_*ank 7

这是我发现的一个使用ViewModel和PagedList的例子.

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