【发布时间】:2015-05-27 22:54:03
【问题描述】:
我找到了几个答案,包括 this one 和 this 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