C# 调用mvc异步方法的ajax调用永远不会返回
我在视图中有一个ajax调用,在控制器中调用一个异步方法。问题是,即使控制器方法执行返回操作,结果也不会返回。因此,在浏览器中,它一直在等待响应,而ajax success或complete方法从未被调用。如果我同步进行,它就会工作。我使用的是MVC4、.NET4.5 在我看来,我有以下ajax:C# 调用mvc异步方法的ajax调用永远不会返回,c#,jquery,asp.net-mvc-4,async-await,C#,Jquery,Asp.net Mvc 4,Async Await,我在视图中有一个ajax调用,在控制器中调用一个异步方法。问题是,即使控制器方法执行返回操作,结果也不会返回。因此,在浏览器中,它一直在等待响应,而ajax success或complete方法从未被调用。如果我同步进行,它就会工作。我使用的是MVC4、.NET4.5 在我看来,我有以下ajax: $.ajax({ type: "POST", url: '@Url.Action("PopulateCertificatesViewModel")', data: data,
$.ajax({
type: "POST",
url: '@Url.Action("PopulateCertificatesViewModel")',
data: data,
success: function(certificatesViewModel) {
alert('success');
//do stuff with the response data...
},
complete: function() {
alert('complete');
});
在我的控制器中,我有以下方法:
[HttpPost]
public async Task<JsonResult> PopulateCertificatesViewModel(int orderId)
{
var service = getservice();
await Task.Run(() =>
{
response = service.getData();
});
return Json(response);
}
[HttpPost]
公共异步任务PopulateCertificatesViewModel(int orderId)
{
var service=getservice();
等待任务。运行(()=>
{
response=service.getData();
});
返回Json(响应);
}
使用contentType:'application/json'
尝试$.ajax。我应该工作。我也有类似的问题。我的请求将从控制器返回,并且在浏览器中处于挂起状态,请求中的内容从未显示。我已经确定我使用的是MVC4和.NET4.5,并且在我的web.config中设置了
最后,我用IISExpress而不是visualstudio附带的cassiniweb服务器解决了这个问题
希望这有帮助。使用$(document).ajaxError(函数(事件、请求、设置){});并尝试捕捉错误。这将有助于找出实际问题。您是否尝试在控制器异步请求时保持制动点!!是的,它退出控制器方法,但是Ajax没有收到响应。同步完成后效果很好。您是否将
targetFramework
设置为4.5?嘿,谢谢Joel,不管您是谁!多聪明的人啊,你是下一个乔恩·斯基特!我有类似的问题,但限制是我无法将我的项目升级到目标4.5,它需要以.Net 4.0为目标