我在我的视图中有一个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);
}
答案 0 :(得分:1)
我有类似的问题。我的请求将从控制器返回,并且在浏览器中处于挂起状态,请求中的内容永远不会显示。我确定我使用的是MVC 4和.NET 4.5,并在我的web.config中设置了<httpRuntime targetFramework="4.5" />
。
最后修复它的是使用IISExpress而不是Visual Studio附带的Cassini Web服务器。
希望这有帮助。
答案 1 :(得分:0)
使用contentType :'application/json'
尝试$ .ajax。我应该工作。