Frage

Ich versuche, ipagedList mit einem ViewModel zu implementieren. Meine Hauptansichtserklärung lautet

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

Dann habe ich eine Anzeigevorlage, die die folgende Erklärung enthält

@model CustomerOrders.WebUI.Models.SiteAdminListViewModel

In meinem Controller übertrage ich das ViewModel an die Ansicht

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

Dies führt zu einem Fehler: "Dieses Wörterbuch erfordert ein Modellelement vom Typ" pagedList.pagedlist "'PagedList.PagedList1 [CustomerORTERS.Webui.Models.SiteadminListViewModel] '

Ich verstehe, was der Fehler sagt, aber ich bin mir nicht sicher, wie ich das ViewModel für die Inkoperation der PAGEDLISTE erlebt habe. Hat jemand anderes dies erlebt oder kann mich jemand in die richtige Richtung zeigen?

Bearbeiten////////////////

Das ist mein 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;
    }
}

Dies ist ein Ausschnitt der Anzeigevorlage ////////////

@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>
War es hilfreich?

Lösung

Hier ist ein Beispiel, das ich gefunden habe, das ViewModel mit PageDlist verwendet.

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top