Ho provato il pacchetto PagedList per ottenere il paging per le visualizzazioni dell'indice. Tutto andava bene e, a livello di controller, tutto funziona perfettamente, visualizza solo 5 record per pagina e visualizza la pagina appropriata in base alla querystring.Utilizzo di @ Html.DisplayNameFor() con PagedList
Il mio problema è nella vista. Ho modificato @Model in PagedList.IPagedList
in modo da poter accedere allo Model.HasNextPage
e ad altre proprietà, ma ora lo @Html.DisplayNameFor(model => model.ItemName)
non funziona più. Ottengo questo errore:
PagedList.IPagedList<Dossier.Models.Item>' does not contain a definition for 'ItemName' and no extension method 'ItemName' accepting a first argument of type 'PagedList.IPagedList<Dossier.Models.Item>' could be found (are you missing a using directive or an assembly reference?)
Qui ci sono le parti pertinenti della vista:
@model PagedList.IPagedList<Dossier.Models.Item>
@using Dossier.Models.Item
...
<th>
@Html.DisplayNameFor(model => model.ItemName)
</th>
Sembra IPagedList non è compatibile con DisplayNameFor(). Qualche idea sul perché questo sta accadendo e su come potrei risolverlo? So che potrei semplicemente inserire manualmente i nomi delle colonne, ma mi piacerebbe che tali informazioni restassero (ed essere modificabili) nel modello più tardi.
Perché non utilizzare ViewBag per trasportare i dati e lasciare @model come era in origine? –