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 を使用する例を 1 つ示します。

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

于 2011-09-08T13:23:58.923 に答える