0

我正在使用此代码在我的 MVC3 应用程序中加载 ajax 内容,但问题是当我向下滚动并加载所有页面时,然后再次触发 ajax 请求两次以加载记录。我设置了一条消息以在 Model== null 或 Model.Count() == 0 时显示,并且此消息在完整记录后加载两次。我的JS代码是:

 var page = 0;
    var _inCallback = false;
    function loadProducts() {
        if (page > -1 && !_inCallback) {
            _inCallback = true;
            page++;
            $('div#loading').html('<p><img src="/Content/ajax-loader.gif"></p>');
            $.get("/Sort/All/" + page, function (data) {
                if (data != '') {
                    $("#productList").append(data);
                }
                if( page > 14 )  {
                $(window).off("scroll");
                $('div#loading').empty();
           } else {
                _inCallback = false;
           }
                $('div#loading').empty();
           });
        }
    }
    var dcList = true;
    $(window).scroll(function () {
        if ($(window).scrollTop()  >= ($(document).height() - $(window).height())*0.95) {
            loadProducts();
        }
    });

注意:在上面的代码中 14 是总页数

我的控制器是:

                var pageno = page ?? 0;
                if (Request.IsAjaxRequest())
                {
                    return PartialView("_cpus", _data.GetALLPaginatedProducts(pageno ));
                }
                return View("Index", _data.GetALLProducts());

请查看并告诉我我在哪里做错了。

任何帮助都将不胜感激。

谢谢并恭祝安康

4

0 回答 0