C# 调用mvc异步方法的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调用,在控制器中调用一个异步方法。问题是,即使控制器方法执行返回操作,结果也不会返回。因此,在浏览器中,它一直在等待响应,而ajax success或complete方法从未被调用。如果我同步进行,它就会工作。我使用的是MVC4、.NET4.5

在我看来,我有以下ajax:

$.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为目标