c# - 调用 mvc 异步方法的 ajax 调用永远不会返回

标签 c# jquery asp.net-mvc-4 async-await

我在我的 View chtml 中有一个 ajax 调用,在我的 Controller 中调用一个异步方法。问题是即使 Controller 方法确实返回了结果也永远不会返回。所以在浏览器中它一直在等待响应并且永远不会调用 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');
});

在我的 Controller 中,我有以下方法:

[HttpPost]
public async Task<JsonResult> PopulateCertificatesViewModel(int orderId)
{
   var service = getservice();

   await Task.Run(() =>
            {                    
                response = service.getData();
            });

   return Json(response);
}

最佳答案

我遇到了类似的问题。我的请求将从 Controller 返回,并且在浏览器中只是处于挂起状态,请求的内容永远不会显示。我已经确定我使用的是 MVC 4 和 .NET 4.5 并且有 <httpRuntime targetFramework="4.5" />在我的 web.config 中设置。

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

希望这对您有所帮助。

关于c# - 调用 mvc 异步方法的 ajax 调用永远不会返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18053953/

相关文章:

c# - 设置数组的长度属性

c# - 从图像设置自适应平铺背景

asp.net-mvc - 如何更改我的 web.config 以在调试时自动提供 <customErrors mode ="Off"/>

c# - 从多个模型传递多个列表以从 Controller 查看

C# 找不到 namespace 名称

c# - 使用 CacheCow 缓存 ASP.NET Web API

javascript - 表单提交时出现 JQuery RangeError

javascript - CSS:适合内容的模态框

javascript - 从当前悬停的 LI 开始循环遍历上一个和下一个 LI

c# - Entity Framework 检索导航属性