首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET MVC不包含“PagedListPager”的定义

ASP.NET MVC不包含“PagedListPager”的定义
EN

Stack Overflow用户
提问于 2018-08-09 17:15:36
回答 1查看 3.1K关注 0票数 2

我正在尝试将分页功能插入到其他公司现有的应用程序构建中。我在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 }))

控制器:

代码语言:javascript
复制
 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:

代码语言:javascript
复制
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; }
}

视图:

代码语言:javascript
复制
@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>
EN

回答 1

Stack Overflow用户

发布于 2018-08-09 20:31:00

@Html.PagedListPager的参数必须是IPagedList类型,而不是PageModelList类型。您必须在控制器中更改它以返回IPagedList类型的模型,还必须更改视图中的@model语句。

代码语言:javascript
复制
@model IPagedList<LibraryViewModel>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51772661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档