将项目模型链接到IPagedList时,为什么会出错?

时间:2018-11-29 22:02:40

标签: asp.net-mvc pagedlist

按照Microsoft网站(https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/sorting-filtering-and-paging-with-the-entity-framework-in-an-asp-net-mvc-application)上的教程进行操作时,我进入“向学生索引视图添加分页链接”部分,并遇到问题。我已经安装了PagedList.Mvc和依赖项PagedList。在我的索引视图上,我遇到以下错误: 错误CS1061:“ PagedList.IPagedList”不包含“模型”的定义,也找不到扩展方法“ Model”接受类型为“ PagedList.IPagedList”的第一个参数是:

PagedList-1.17.0.0

PagedList.Mvc-4.5.0.0

这些是在我的视图顶部调用的引用:

@using PagedList.Mvc;
@using PagedList;
@model PagedList.IPagedList<InventoryTracking.Models.Item>

这是我的控制器中的相关代码:

var items = from s in db.Items select s;
...
int pageSize = 3;
int pageNumber = (page ?? 1);
return View(items.ToPagedList(pageNumber, pageSize));

2 个答案:

答案 0 :(得分:0)

确保您要从控制器传递PagedList到视图

例如:

List<Item> ItemList = db.Items.ToList();
return view(ItemList.ToPagedList(page, PageCount));

您的页面是当前页码,页面数是一页上的总项数

答案 1 :(得分:0)

我通过查看此链接MVC IPagedList with model type error找到了答案。在我看来,问题在于,我使用的是@ Html.DisplayNameFor(Model),该模型在更改为IPagedList之前基于模型基于项目时有效。我有一个名为“模型”的类并没有帮助,在寻找答案时,事情变得更加混乱。

//Incorrect 
@Html.DisplayNameFor(model => model.Assigned_User)

//Correct
@Html.DisplayNameFor(model => model[0].Assigned_User)