簡體   English   中英

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

[英]ASP.NET MVC does not contain a definition for 'PagedListPager'

我正在嘗試將分頁功能插入到其他公司構建的現有應用程序中。 我在 cshtml 中遇到錯誤:

編譯器錯誤消息:CS1928:“System.Web.Mvc.HtmlHelper<SQRL.PageModels.PageModelList<SQRL.ViewModels.LibraryViewModel>>”不包含“PagedListPager”和最佳擴展方法重載“PagedList.Mvc.HtmlHelper”的定義.PagedListPager(System.Web.Mvc.HtmlHelper, PagedList.IPagedList, System.Func<int,string>)' 有一些無效的參數

源錯誤:

編譯器錯誤消息:CS1928:“System.Web.Mvc.HtmlHelper<SQRL.PageModels.PageModelList<SQRL.ViewModels.LibraryViewModel>>”不包含“PagedListPager”和最佳擴展方法重載“PagedList.Mvc.HtmlHelper”的定義.PagedListPager(System.Web.Mvc.HtmlHelper, PagedList.IPagedList, System.Func<int,string>)' 有一些無效的參數

源錯誤:

@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);
}

頁面模型列表:

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>

的參數@Html.PagedListPager必須是類型IPagedList不是那種PageModelList 您必須在控制器中更改它以返回 IPagedList 類型的模型,並且您還必須在視圖中更改@model語句。

@model IPagedList<LibraryViewModel>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM