0

我有一个 MVC 视图,我正在使用该PagedList组件对数据进行一些分页。我支持此功能的 JavaScript 如下所示:

$(function () {

    var getPage = function () {
        var $a = $(this);

        var options = {
            url: $a.attr("href"),
            type: "get"
        };

        $.ajax(options).done(function (data) {
            var target = $a.parents("div.pagedList").attr("data-ExchangeSite-target");
            data: $("form").serialize(),
            $(target).replaceWith(data);
        });

        return false;
    };

    $(".main-content").on("click", ".pagedList a", getPage);

});

我的 .cshtml 文件部分看起来像这样:

    @model ExchangeSite.Entities.BicycleSearchSeller

    <div id="itemList">

        <div class="pagedList" data-ExchangeSite-target="#itemList">
            @Html.PagedListPager(Model.BicycleSellerListingList, pageNumber => Url.Action("Index", new {pageNumber}),
            PagedListRenderOptions.ClassicPlusFirstAndLast)
        </div>
   ...
   ...

在 IE9 中,这非常有效。当我单击特定页码或下一页/上一页时,将对我的控制器进行异步调用以刷新数据列表(“​​itemList”)。但是,在 Chrome 中,对我的控制器进行了两次调用。一个是 Ajax 调用,另一个不是。谁能告诉我为什么在 Chrome 中对我的控制器进行了两次调用?如果您需要查看更多代码,请告诉我。

4

1 回答 1

2

您的成功回调中似乎有一些错误线:

data: $("form").serialize(),

它以逗号而不是分号结束。它后面还包含一个冒号data。与 Google Chrome 相比,IE 对损坏的 javascript 可能更宽容一些。

于 2013-03-02T17:43:25.523 回答