5

Sto cercando di implementare IPagedList con un ViewModel, il mio principale dichiarazione vista èUtilizzando PagedList con un ViewModel MVC 3

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

poi ho un modello di visualizzazione che ha la seguente dichiarazione

@model CustomerOrders.WebUI.Models.SiteAdminListViewModel 

nel mio controller sto passando il ViewModel alla vista

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

Ciò si traduce in un errore ", th è dizionario richiede un elemento del modello di tipo 'PagedList.PagedList 'PagedList.PagedList 1 [CustomerOrders.WebUI.Models.SiteAdminListViewModel]'

capisco che cosa l'errore sta dicendo, ma im incerto come ammend ViewModel a includere il PagedList, qualcuno ha altrimenti ho provato questo o qualcuno può indicarmi la giusta direzione?

Modifica ////////////////

Questo è il mio 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; 
    } 
} 

Questo è un frammento della maschera di visualizzazione ////// //////

@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> 
+0

non stanno dando abbastanza informazioni né hai fornito una sfera di cristallo. Come appare il modello di vista? Il modello di visualizzazione? Sembra sbagliato che PagedList sia specializzato in SiteAdminListModel. Capisci cosa significa PagedList <>? – awrigley

+0

@awrigley, Ciao mi scuso per il fatto che non ho incluso subito il codice viewmodel come spesso trovo quando un post è troppo approfondito, ma non ottiene una risposta, ho aggiornato il post con il codice viewmodel, ho seguito l'ordinamento e il tutorial di paging sul sito MVC e il loro codice utilizza PagedList nella dichiarazione della vista ma non usano un viewmodel. – Liam

+0

Com'è il codice per PagedList? Qual è il codice per Customer.ToPagedList? Dove viene lanciata l'eccezione? –

risposta

Problemi correlati