我正在尝试将分页功能插入到其他公司现有的应用程序构建中。我在cshtml上得到了错误:
编译器错误消息:'System.Web.Mvc.HtmlHelper>‘:CS1928不包含“PagedListPager”的定义,最好的扩展方法重载'PagedList.Mvc.HtmlHelper.PagedListPager(System.Web.Mvc.HtmlHelper,PagedList.IPagedList、System.Func’有一些无效的参数
源错误:
编译器错误消息:'System.Web.Mvc.HtmlHelper>‘:CS1928不包含“PagedListPager”的定义,最好的扩展方法重载'PagedList.Mvc.HtmlHelper.PagedListPager(System.Web.Mvc.HtmlHelper,PagedList.IPagedList、System.Func’有一些无效的参数
源错误:
@Html.PagedListPager(Model,page => Url.Action("Index",new { page,sortOrder = ViewBag.CurrentSort,currentFilter = ViewBag.CurrentFilter }))
控制器:
public ActionResult Index(int? page, string sortOrder, string currentFilter, int? managerGroupId, int? userGroupId, bool deletedBooks = false)
{
var models = new LibraryViewModel[] { };
models = Repository.LibrariesAsViewModels(managerGroup: managerGroupId, userGroup: userGroupId, includeInactive: deletedBooks)
.Where(p => p.ParentID.HasValue == false).OrderByDescending(p => p.SortOrder)
.Where(p => deletedBooks ? p.IsActive == false : true)
.ToArray();
ViewBag.CurrentSort = sortOrder;
ViewBag.currentFilter = currentFilter;
int pageSize = 6;
int pageNumber = (page ?? 1);
// var model = new PageModelList<LibraryViewModel>(); **original code
// model.Items = models; ** original code
var modelnew = new PageModelList<LibraryViewModel>();
modelnew.PList = models.ToPagedList(pageNumber, pageSize);
// return view(model) **original code
return View(modelnew);
}PageModelList:
public class PageModelList<T> : PageModel
{
public IEnumerable<T> Items { get; set; }
public int Count
{
get
{
if (Items == null)
{
return 0;
}
return Items.Count();
}
}
public IPagedList<T> PList { get; set; }
}视图:
@using PagedList.Mvc;
@using PagedList;
@model PageModelList<LibraryViewModel>
@*model PagedList.IPagedList<PageModelList<LibraryViewModel>> --Commented out, there is error*@
<link href="~/Content/PagedList.css" rel="stylesheet" type="text/css" />
<div class="text-center">
<ul class="pagination">
@*Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount*@
@Html.PagedListPager(Model, page => Url.Action("Index",
new { page, sortOrder = ViewBag.CurrentSort, currentFilter = ViewBag.CurrentFilter }))
</ul>
</div>发布于 2018-08-09 20:31:00
@Html.PagedListPager的参数必须是IPagedList类型,而不是PageModelList类型。您必须在控制器中更改它以返回IPagedList类型的模型,还必须更改视图中的@model语句。
@model IPagedList<LibraryViewModel>https://stackoverflow.com/questions/51772661
复制相似问题