asp.net-mvc – 使用@ Html.DisplayNameFor()与PagedList

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 使用@ Html.DisplayNameFor()与PagedList前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在尝试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)

猜你在找的asp.Net相关文章