5

Estoy tratando de poner en práctica IPagedList con un modelo de vista, mi principal declaración de vista esUsando PagedList con un modelo de vista MVC 3

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

entonces tengo una plantilla de visualización que tiene la siguiente declaración

@model CustomerOrders.WebUI.Models.SiteAdminListViewModel 

En mi controlador estoy pasando el modelo de vista a la vista

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

Esto produce un error, "th es el diccionario requiere un elemento de modelo del tipo 'PagedList.PagedList 'PagedList.PagedList 1 [CustomerOrders.WebUI.Models.SiteAdminListViewModel]'

entiendo lo que está diciendo el error, pero estoy seguro de cómo enmendar el modelo de vista de la incoporate PagedList, tiene a nadie ¿Has experimentado esto o alguien puede señalarme en la dirección correcta?

Editar ////////////////

Ésta es mi modelo de vista

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; 
    } 
} 

Este es un fragmento de la plantilla de visualización ////// //////

@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

usted no está dando suficiente información ni has suministrado una bola de cristal. ¿Cómo se ve el modelo de vista? La plantilla de visualización? Parece incorrecto que la PagedList se especialice en SiteAdminListModel. ¿Entiendes lo que significa PagedList <>? – awrigley

+0

@awrigley, Hola mis disculpas por eso, no he incluido el código de viewmodel de inmediato ya que a menudo me parece que cuando una publicación es demasiado profunda no recibe una respuesta, he actualizado la publicación con el código viewmodel, he estado siguiendo la clasificación y el tutorial de paginación en el sitio de MVC y su código utiliza PagedList en la declaración de vista pero no usan un modelo de vista. – Liam

+0

¿Cómo es el código de PagedList? ¿Cuál es el código para Customer.ToPagedList? ¿Dónde se lanza la excepción? –

Respuesta

Cuestiones relacionadas