我使用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;
答案 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