PagedList.MVC 4.5.0.0 と共に MVC 5 を使用しています。データが戻ってきてテーブルに表示され、ページャー コントロールが表示されます。ただし、[次へ] をクリックすると、ページャーは 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以上のレコードを持っているので、他のデータがあります.ページャーもそれを示しているので、ページャーは「2546のアイテム1から40を表示しています.