Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NET MVC应用程序中的分页_Asp.net Mvc_Pagination - Fatal编程技术网

Asp.net mvc ASP.NET MVC应用程序中的分页

Asp.net mvc ASP.NET MVC应用程序中的分页,asp.net-mvc,pagination,Asp.net Mvc,Pagination,我想在我的应用程序中实现分页 我的控制器 public ActionResult Leading(string type, int? pageNumber) { IEnumerable<LeadingClass> data; LeadingDatabaseHandle DatabaseHandle = new LeadingDatabaseHandle (); if (type.HasValue) { data = DatabaseHa

我想在我的应用程序中实现
分页

我的控制器

public ActionResult Leading(string type, int? pageNumber)
{
    IEnumerable<LeadingClass> data;
    LeadingDatabaseHandle DatabaseHandle = new LeadingDatabaseHandle ();
    if (type.HasValue)
    {
        data = DatabaseHandle(type).ToPagedList(pageNumber ?? 1, 10);
    }
    else
    {
        data = DatabaseHandle.LeadingAll().ToPagedList(pageNumber ?? 1, 10);
    }
    LeadingFilterVM model = new LeadingFilterVM
    {
        Type = type,
        TypeList = new List<SelectListItem>
        {
            new SelectListItem{ Text = "General", Value = "1" },
            new SelectListItem{ Text = "Advance", Value = "2" }
        },  
        Leadings = data
    };
    return View(model);
}
我的视图模型

public class LeadingFilterVM
{
    public string Type { get; set; }
    public IEnumerable<SelectListItem> TypeList { get; set; }
    public IEnumerable<LeadingClass> Leadings { get; set; }
}
public class LeadingFilterVM
{
公共字符串类型{get;set;}
公共IEnumerable类型列表{get;set;}
公共IEnumerable引线{get;set;}
}
我的看法呢

@model Website.Models.Leading.ViewModels.LeadingFilterVM
@using PagedList;
@using PagedList.Mvc;
@using (Html.BeginForm("Leading", "Home", FormMethod.Get))
{
    @Html.DisplayNameFor(m => m.Leadings.FirstOrDefault().Type)
    @Html.DropDownListFor(m => m.Type, Model.TypeList, "All Type", new { @class = "form-control"})
}
<table class="table table-hover">
    <tr>
        <th>@Html.DisplayNameFor(m => m.Leadings.FirstOrDefault().Id)</th>
        <th>@Html.DisplayNameFor(m => m.Leadings.FirstOrDefault().Name)</th>
    </tr>
    @foreach (var item in Model.Leadings)
    {
        <tr>
            <td>@Html.DisplayFor(modelItem => item.Id)</td>
            <td>@Html.DisplayFor(modelItem => item.Name)</td>   
        </tr>
    }
</table>

Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount

@Html.PagedListPager(Model, pageNumber => Url.Action("Leading", new
{
    pageNumber   
}))
@model.Website.Models.Leading.ViewModels.LeadingFilterVM
@使用页面列表;
@使用PagedList.Mvc;
@使用(Html.BeginForm(“Leading”、“Home”、FormMethod.Get))
{
@DisplayNameFor(m=>m.Leadings.FirstOrDefault().Type)
@DropDownListFor(m=>m.Type,Model.TypeList,“所有类型”,新的{@class=“form control”})
}
@DisplayNameFor(m=>m.Leadings.FirstOrDefault().Id)
@DisplayNameFor(m=>m.Leadings.FirstOrDefault().Name)
@foreach(模型领导中的var项目)
{
@DisplayFor(modeleItem=>item.Id)
@DisplayFor(modelItem=>item.Name)
}
@Model.PageCount的@页(Model.PageCountUrl.Action(“Leading”),新
{
页码
}))
它正在抛出错误:编译器错误消息:

CS1061:“LeadingFilterVM”不包含“PageNumber”的定义,并且找不到接受“LeadingFilterVM”类型的第一个参数的扩展方法“PageNumber”(是否缺少using指令或程序集引用?)


有人能为我指点迷津吗?

视图中的模型是
LeadingFilterVM
,该模型不包含
页码的属性

请注意,代码还有其他问题,需要将视图模型更改为

public class LeadingFilterVM
{
    public string Type { get; set; }
    public IEnumerable<SelectListItem> TypeList { get; set; }
    public IPagedList<LeadingClass> Leadings { get; set; } //IPagedList, not IEnumerable
}
并将方法的签名更改为

public ActionResult Leading(int? type, int? pageNumber)
您还需要更改代码以生成
SelectList

TypeList = new List<SelectListItem>
{
    new SelectListItem{ Text = "General", Value = "General" },
    new SelectListItem{ Text = "Advance", Value = "Advance" }
},

消息非常明显:
PageNumber
属性在
LeadingFilterVM
viewmodel类中不存在。从
PagedListPager
检查您是否正确使用了
PageNumber
。从您在问题中共享的代码中,您的
LeadingFilterVM
类没有
PageNumber
属性。如果尚未定义该属性,为什么要使用它?
public ActionResult Leading(int? type, int? pageNumber)
TypeList = new List<SelectListItem>
{
    new SelectListItem{ Text = "General", Value = "General" },
    new SelectListItem{ Text = "Advance", Value = "Advance" }
},
public ActionResult Leading(string type, int? pageNumber)
{
    IQueryable<LeadingClass> data = db.LeadingClass;
    if (type != null)
    {
        data = data.Where(x => x.Type == type.Value);
    }
    LeadingFilterVM model = new LeadingFilterVM
    {
        ....
        Leadings = data..ToPagedList(pageNumber ?? 1, 10)
    };
    return View(model);
}