3

我在我的视图中有一个 ajax 调用 chtml 在我的控制器中调用一个异步方法。问题是即使控制器方法确实返回,结果也永远不会返回。所以在浏览器中它一直在等待响应,并且永远不会调用 ajax 成功或完成方法。如果我同步执行它,它会起作用。我正在使用 mvc 4、.net 4.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);
}
4

2 回答 2

1

我有一个类似的问题。我的请求将从控制器返回,并且在浏览器中处于待处理状态,请求中的内容永远不会出现。我已经确定我使用的是 MVC 4 和 .NET 4.5,并且<httpRuntime targetFramework="4.5" />在我的 web.config 中有设置。

最后,为我解决的问题是使用 IISExpress 而不是 Visual Studio 附带的 Cassini Web 服务器。

希望这可以帮助。

于 2013-09-20T05:36:34.510 回答
0

尝试 $.ajax 与contentType :'application/json'. 我应该工作。

于 2013-08-05T08:50:19.867 回答