我是否向ActionResult发送了两个请求?

时间:2019-04-05 14:09:45

标签: ajax asp.net-mvc get

我有一个ASP.net MVC项目,并且根据用户选择的过滤器选项,我向同一actionresult发送不同的ajax请求,例如:

 $(document).on("click", "#filter_reset_button", function () {
    var url = "/Admin/Index";

    ajaxRequest({
        url: url,
        type: "get",
        data: { reset: true },
        successCallback: function () {
            window.location.href = url;
        }
    });
});

其他侦听器发送了不同的数据,例如:

 data: { page: 2, filterUpdate: true }

,依此类推。 Index ActionResult返回不同的项目列表,具体取决于数据中选择的不同选项,并且代码可以正常工作。

我的一个同事告诉我,我的代码实际上每次每次都向AR发送两个get请求,因此效率不高。真的吗?如果是这样,我该如何重构它。使它只是一个请求?如果我让window.location.href = url部分退出,则该站点实际上不会加载服务器响应。

3 个答案:

答案 0 :(得分:0)

这是正确的2个请求。

在管理控制器中调用AJAX get到操作索引时的第一个请求。

设置window.location.href = url后的第二个请求,与在浏览器中输入/Admin/Index相同。

在这种情况下,点击功能只需要window.location.href = '/admin/index?reset=true'

答案 1 :(得分:0)

是的,您正在单击按钮中的2个请求。 Ajax中获得第一名,成功回拨中获得第二名。

但是您为什么要拨window.location.href = url; success回叫。 ?

如果要在单击后更新页面,可以对页面进行部分更新。检查this帖子。

答案 2 :(得分:0)

您可以在此处查看帖子 at this post

实际上,在成功回调时,您必须根据上述内容相应地更改代码