【问题标题】:How to Abort Long running Ajax Request in .net MVC 4?如何在 .net MVC 4 中中止长时间运行的 Ajax 请求?
【发布时间】:2015-05-27 22:54:03
【问题描述】:

我找到了几个答案,包括 this onethis one。但是由于某种原因,this.Response.IsClientConnected 仍然是true

这是我的客户:

<div class="ajax-loader-gif-close" id="cancelBusy">Close</div>

@using (Html.BeginForm("List", "Visit", FormMethod.Post, new { @id = "formFilter" }))
    {
       //Some models some TextBoxFor  etc.
    }

<script type="text/javascript" language="javascript">
    var ajaxCallObject = null;

    $(document).ready(function () {
         $('form').submit(function () {
                ajaxCallObject = $.ajax({
                    url: this.action,
                    type: this.method,
                    data: $(this).serialize(),
                    beforeSend: function () {
                        toggleBusyIndicator();
                    },
                    complete: function () {
                        toggleBusyIndicator();
                    },
                    success: function (result) {
                        //Some stuff
                    }
                });

                return false;
            });
        }
        $("#cancelBusy").click(function () {
             ajaxCallObject.abort();
        });
    });
</script>

这是我的服务器端:

[HttpPost]
public PartialViewResult List(VisitFilterViewModel model)
{
      //IsClientConnected is ALWAYS TRUE even though I abort from client
      while (this.Response.IsClientConnected)
      {
            Thread.Sleep(500);
      }

      return PartialView("PartialVisitFilterList", model);
}

使用 FireBug,我看到操作已中止,但 IsClientConnected 仍然是 true。我做错了什么?

注意:如果您考虑删除[HttpPost] 属性来解决此问题,我已经尝试过,但没有成功。

【问题讨论】:

    标签: jquery ajax asp.net-mvc asp.net-mvc-4 abort


    【解决方案1】:

    感谢this post我终于解决了! 实际上,我所做的完全可以工作,但是由于我是在本地计算机上使用 VS Development 运行它,因此响应从未结束。但是,当我把它放在 IIS 服务器上时,一切正常。

    如果网站或帖子被删除,我将在此处发布答案:

    当应用程序托管在 IIS。如果您在 VS 开发服务器上进行测试 Response.IsClientConnected 将始终为真。请记住,在 以前版本的 RadProgressArea 取消不是 在 Chrome 下工作。对于 Q2.2014,这将得到解决。你可以 为此测试我们的内部构建。

    【讨论】:

      猜你喜欢
      • 2020-08-04
      • 2011-01-23
      • 2022-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-05
      • 1970-01-01
      相关资源
      最近更新 更多