![](/img/trans.png)
[英]“System.Web.UI.MasterPage does not contain a definition…” ASP.NET error
[英]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.