Ненавязчивый ajax не запускается с PagedList MVC - PullRequest
0 голосов
/ 10 сентября 2018

Я хочу пейджинг с библиотекой PagedList.MVC. Но когда я нажимаю и нажимаю на PageNumber, я вижу перепривязку списка, но данные не влияют, потому что param по-прежнему является страницей 1. Почему PageNumber всегда 1. Я приложил изображение.

введите описание изображения здесь

Я использую Microsoft.jQuery.Unobtrusive.Ajax 3.2.5, PagedList.Mvc 4.5 и MVC 5. Я не знаю, что несовместимо.

Это мой код подкачки в ViewPartial:

@if (Model.TotalItemCount > 5)
{
    <div class="pagingBox">     
        <div class="pagerecord display_none_mobile">
            Records

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

        @Html.PagedListPager(Model, page => Url.Action("Index", "Customer",
     new
     {
         pageNumber = ViewBag.PageNumber,     
         pageSize = ViewBag.PageSize
     }),
        PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(new PagedListRenderOptions
        {
            Display = PagedListDisplayMode.IfNeeded,
            MaximumPageNumbersToDisplay = 5
        },
        new AjaxOptions
        {
            InsertionMode = InsertionMode.Replace,
            HttpMethod = "Get",
            UpdateTargetId = "CricketersGrid",
            LoadingElementId = "divProcessing"
        }))
    </div>
    <div id="divProcessing" class="processingButton" style="display: none;">
        <img width="31" height="31" alt="" class="LoadingImage" src="~/Images/ajax-loader-round.gif" />        
    </div>
} 

Этот код в контроллере:

public async Task<ActionResult> Index(int? pageNumber, int? pageSize)
    {
        if (!pageNumber.HasValue)
            pageNumber = 1;
        if (!pageSize.HasValue)
            pageSize = 5;

        int startIndex = pageNumber > 1 ? (pageNumber.Value * pageSize.Value) + 1 : 1;
        int endIndex = startIndex + pageSize.Value - 1;

        ViewBag.PageNumber = pageNumber;
        ViewBag.PageSize = pageSize;

        Customers param = new Customers();          
        List<ViewCustomer> lst = await _cust.GetListPagingAsync(param, startIndex, endIndex);
        List<ViewCustomerModel> result = Mapper.Map<List<ViewCustomerModel>>(lst);

        return View("~/Views/Customer/Index.cshtml", new ViewCustomerPagingModel() { viewCustomerModel = result });        
    }

И это в View index:

@model EBO.Customer.Web.Models.ViewCustomerPagingModel
@using PagedList;

<script src="~/Scripts/jquery-1.10.2.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>

@using (Ajax.BeginForm("Index", "Customer", null, new AjaxOptions() { LoadingElementId = "", HttpMethod = "Get", UpdateTargetId = "CricketersGrid" }))
{
    <div class="CricketersList">
        <div id="CricketersGrid">
            @Html.Partial("~/Views/Customer/_PagingPartial.cshtml", new StaticPagedList<EBO.Customer.Web.Models.ViewCustomerModel>(Model.viewCustomerModel, Convert.ToInt32(ViewBag.PageNumber), Convert.ToInt32(ViewBag.PageSize), Model.viewCustomerModel.Count > 0 ? Model.viewCustomerModel.FirstOrDefault().TotalCount : 0))
        </div>
    </div>
} 
...