mvc pagedlist页码不递增

时间:2014-04-22 19:46:00

标签: asp.net asp.net-mvc asp.net-mvc-5 pagedlist

我使用MVC 5以及PagedList.MVC 4.5.0.0,我有数据返回并显示在我的桌面上,同时显示寻呼机控件。当我点击下一步时,寻呼机继续向我的函数发送page = 1,在调试时看到它。

我的页面有:

                <div class="pagedList" data-otf-target="#contractList">
                @Html.PagedListPager(Model, page => Url.Action("Index", new { page }), PagedListRenderOptions.MinimalWithItemCountText)
            </div>

将数据发送回动作的方法是

        public IPagedList<ContractViewModel> GetAllContracts(int page = 1)
    {
        var lstcontractViewModel = new List<ContractViewModel>();
        using (ContractRepository contractRepos = new ContractRepository(new UnitOfWork()))
        {
            var activeContractList = contractRepos.All.OrderByDescending(x => x.Id);

            foreach (var activeContract in activeContractList)
            {
                Mapper.CreateMap<DomainClasses.ActiveContract, ActiveContractViewModel>().ForMember(dest => dest.ContractorModel, opts => opts.Ignore());

                Mapper.AssertConfigurationIsValid();
                lstcontractViewModel.Add(Mapper.Map<ActiveContractViewModel>(activeContract));
            }
        }

        return lstcontractViewModel.ToPagedList(page, 40);
    }

我的控制人员的行动是

        public ActionResult Index()
    {
        var contracts = activeaccountController.GetAllContracts(); 
        return View(contracts);
    }

正如我所说,第一页的所有内容都很好,就在调用GetAllContracts方法时,调试器显示的页面总是= 1.因此,分页总是返回第一页结果。我有超过2500条记录,因此有其他数据,因为寻呼机也显示,寻呼机说&#34;显示2546的第1至40项。&#34;

1 个答案:

答案 0 :(得分:1)

@Html.PagedListPager(Model, page => Url.Action("Index", new { page }), PagedListRenderOptions.MinimalWithItemCountText)

尝试设置新的{page = somevalue},它将发送一个参数。

Public ActionResult Index(int page) 

public IPagedList<ContractViewModel> GetAllContracts(int page = 1)

这意味着如果未应用其他参数,则页面默认为1。

var contracts = activeaccountController.GetAllContracts(page); 

有关详细信息,请参阅https://github.com/TroyGoode/PagedList