我在我的视图中有一个 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);
}