按照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));
答案 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)