3

ビュー chtml に ajax 呼び出しがあり、コントローラーで async メソッドを呼び出しています。問題は、コントローラ メソッドがリターンを行っても、結果が返されないことです。そのため、ブラウザーでは応答を待ち続け、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 に設定しました。

結局、Visual Studio に付属の Cassini Web サーバーの代わりに IISExpress を使用することで解決しました。

お役に立てれば。

于 2013-09-20T05:36:34.510 に答える
0

で $.ajax を試してくださいcontentType :'application/json'。私は働かなければならない。

于 2013-08-05T08:50:19.867 に答える