我一直在尝试PagedList包为我的索引视图分页。一切都进行顺利,在控制器级别一切正常,它只显示每页5条记录,并显示基于查询字符串的适当页面。
我的问题是在视图中。我改变了@Model为PagedList.IPagedList,所以我可以访问Model.HasNextPage和其他属性,但现在@ Html.DisplayNameFor(model => model.ItemName)不再工作。我得到这个错误:
PagedList.IPagedList< Dossier.Models.Item>‘不包含“ItemName”的定义,并且没有接受类型为“PagedList.IPagedList< Dossier.Models.Item>”的第一个参数的扩展方法“ItemName”可以找到(你缺少一个using指令或程序集引用?)
这里是视图的相关部分:
@model PagedList.IPagedList<Dossier.Models.Item> @using Dossier.Models.Item ... <th> @Html.DisplayNameFor(model => model.ItemName) </th>
它似乎IPagedList不兼容DisplayNameFor()。任何想法为什么这是发生,我如何可以解决它?我知道我可以手动输入列名,但我想让这些信息留在模型中(并且可以改变)。
解决方法
你可以试试这个
@Html.DisplayNameFor(model => model.FirstOrDefault().ItemName)