关于PagedList.Mvc的疑惑,求解!

时间:2022-02-10 19:47:55
PagedList.Mvc版本4.5

直接上代码:
Controller:
        public ActionResult Index(int? ipage)
        {
            var _category = db.Category.Where(c => c.CategoryID > 0).OrderBy(c => c.CategoryID);
            int pageSize = 5;
            int pageNumber = (ipage ?? 1);
            return View(_category.ToPagedList(pageNumber, pageSize));
        }

View.cshtml:
@model PagedList.IPagedList<MvcBalance.Models.Categorys>
@using PagedList.Mvc;

<link href="~/Content/PagedList.css" rel="stylesheet" type="text/css" />
@{
    ViewBag.Title = "Index";
}

<h2>Category Setting</h2>

<p>
    @Html.ActionLink("Create New", "Create",null, new { @class = "hrefbutton" })
</p>
<table class="table_list">
    <tr>
        <th>
          @Html.DisplayNameFor(model=>model.CategoryName)       </th>
        <th>
            @*@Html.DisplayNameFor(model => model.CategoryDescription)*@


编译器错误消息: CS1061: “PagedList.IPagedList<MvcBalance.Models.Categorys>”不包含“CategoryName”的定义,并且找不到可接受类型为“PagedList.IPagedList<MvcBalance.Models.Categorys>”的第一个参数的扩展方法“CategoryName”(是否缺少 using 指令或程序集引用?)
请大侠指点这是为何?

7 个解决方案

#1


在 View 里不需要引用:@model PagedList.IPagedList<MvcBalance.Models.Categorys>
将View改为如下:
@model IEnumerable<MvcBalance.Models.Categorys>
@using PagedList.Mvc;
......

#2


你传入的Model是一个List,下面又不循环?

<th>@Html.DisplayNameFor(model=>model.First().CategoryName)       </th>
  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/

#3


要添加PagedList引用。

#4


在View里不用IPagedList似乎是一种方法,但是“正宗”的方法应该是版主说的在table的标题里加上first(),把@Html.DisplayNameFor(model=>model.CategoryName)改为@Html.DisplayNameFor(model=>model.First().CategoryName)。
@model PagedList.IPagedList<MvcBalance.Models.Categorys>
@using PagedList.Mvc;
  ......
<table class="table_list">
    <tr>
        <th>
          @Html.DisplayNameFor(model=>model.First().CategoryName)       </th>
        <th>

#5


引用 4 楼 SAP_EX 的回复:
在View里不用IPagedList似乎是一种方法,但是“正宗”的方法应该是版主说的在table的标题里加上first(),把@Html.DisplayNameFor(model=>model.CategoryName)改为@Html.DisplayNameFor(model=>model.First().CategoryName)。
@model PagedList.IPagedList<MvcBalance.Models.Categorys>
@using PagedList.Mvc;
  ......
<table class="table_list">
    <tr>
        <th>
          @Html.DisplayNameFor(model=>model.First().CategoryName)       </th>
        <th>

你取了5条数据,只显示一条?

#6


只是显示标题。
        <th>
          @Html.DisplayNameFor(model=>model.First().CategoryName)
        </th>

#7


因为这个接口或类没有对应的扩展方法,我的MvcPager就可以:
http://www.webdiyer.com/mvcpager/
实现DisplayNameFor扩展方法的源代码在这里:
http://www.webdiyer.com/mvcpager/sourcecode/displaynameforextension/

#1


在 View 里不需要引用:@model PagedList.IPagedList<MvcBalance.Models.Categorys>
将View改为如下:
@model IEnumerable<MvcBalance.Models.Categorys>
@using PagedList.Mvc;
......

#2


你传入的Model是一个List,下面又不循环?

<th>@Html.DisplayNameFor(model=>model.First().CategoryName)       </th>
  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/

#3


要添加PagedList引用。

#4


在View里不用IPagedList似乎是一种方法,但是“正宗”的方法应该是版主说的在table的标题里加上first(),把@Html.DisplayNameFor(model=>model.CategoryName)改为@Html.DisplayNameFor(model=>model.First().CategoryName)。
@model PagedList.IPagedList<MvcBalance.Models.Categorys>
@using PagedList.Mvc;
  ......
<table class="table_list">
    <tr>
        <th>
          @Html.DisplayNameFor(model=>model.First().CategoryName)       </th>
        <th>

#5


引用 4 楼 SAP_EX 的回复:
在View里不用IPagedList似乎是一种方法,但是“正宗”的方法应该是版主说的在table的标题里加上first(),把@Html.DisplayNameFor(model=>model.CategoryName)改为@Html.DisplayNameFor(model=>model.First().CategoryName)。
@model PagedList.IPagedList<MvcBalance.Models.Categorys>
@using PagedList.Mvc;
  ......
<table class="table_list">
    <tr>
        <th>
          @Html.DisplayNameFor(model=>model.First().CategoryName)       </th>
        <th>

你取了5条数据,只显示一条?

#6


只是显示标题。
        <th>
          @Html.DisplayNameFor(model=>model.First().CategoryName)
        </th>

#7


因为这个接口或类没有对应的扩展方法,我的MvcPager就可以:
http://www.webdiyer.com/mvcpager/
实现DisplayNameFor扩展方法的源代码在这里:
http://www.webdiyer.com/mvcpager/sourcecode/displaynameforextension/