Я пробовал пакет PagedList, чтобы получить пейджинг для моих представлений индексов. Все шло хорошо, и на уровне контроллера все работает нормально, оно отображает только 5 записей на странице и отображает соответствующую страницу на основе запроса.Использование @ Html.DisplayNameFor() с PagedList
Моя проблема во взгляде. Я изменил @Model на PagedList.IPagedList
, чтобы получить доступ к Model.HasNextPage
и другим объектам, но теперь @Html.DisplayNameFor(model => model.ItemName)
больше не работают. Я получаю эту ошибку:
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?)
Вот соответствующие части представления:
@model PagedList.IPagedList<Dossier.Models.Item>
@using Dossier.Models.Item
...
<th>
@Html.DisplayNameFor(model => model.ItemName)
</th>
Это кажется IPagedList не совместим с DisplayNameFor(). Любая идея, почему это происходит, и как я могу это исправить? Я знаю, что могу просто вручную ввести имена столбцов, но мне хотелось бы, чтобы эта информация оставалась (и менялась) в модели позже.
Почему бы не использовать ViewBag для переноса ваших данных и оставить @model так, как он был изначально? –