5

我正在尝试使用视图模型实现 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.PagedList1[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>
4

1 回答 1

7

这是我发现的一个将 ViewModel 与 PagedList 结合使用的示例。

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

于 2011-09-08T13:23:58.923 回答