2017-06-28 6 views
0

Iは、次の行を返すコントローラを有する:プロミスはヌルフォームコントローラを取得

コントローラこの方法は、このようなAjaxリクエストによって実行さ
Json(null, JsonRequestBehavior.AllowGet); 

return new Promise (function(resolve, reject) 
      { $.ajax({ 
       type: 'POST', 
       url: GL_ROOT + "AccountingCompany/DeleteAccountingCompany", 
       data: JSON.stringify({ id: id }), 
       dataType: 'json', 
       contentType: 'application/json; charset=utf-8', 
       success: function (deleteResult) { 
        resolve(deleteResult); 
       } 
      }); 
     }); 

Iセット成功部分のブレークポイントは、決してそこには到達しません。しかし、コントローラーの結果をJson(-1, JsonRequestBehavior.AllowGet);に変更した場合、Ajaxリクエストの成功部分でブレークポイントになります。

誰かが私がブレークポイントに到達できない理由を知ることができますか?

+1

[Controller.Json()MSDN](https://msdn.microsoft.com/en-us/library/ee430920(v=11118).aspx)によると、 'data'パラメータはa私はC#で多くの経験を持っていないが、私の推測では、 'null'はシリアライズできないため、要求が失敗する原因になっています。または障害ハンドラを定義し、そこにブレークポイントを設定することもできますか? –

+0

nullを無視する方法があるように見えるhttps://stackoverflow.com/questions/9819640/ignoring-null-fields-in-json-net – Hopeless

+0

リクエストは正しく実行されます。実際には 'null'はシリアライズ可能ではありませんそれがブレークポイントに達する理由です。 –

答えて

0

Json(null)の出力を解決しようとすると、クライアント側で解析の問題が発生する可能性があります。これは空の文字列に変換されます。 代わりにJson(new {}, JsonRequestBehavior.AllowGet)をお試しください。

希望します。

+0

あなたの助けてくれてありがとう、それはブレークポイントになるが、私はこの結果 'null == null 'または' result == '' –

+0

のようにnullに結果を比較することはできません。 JSON.stringify(result)=== JSON.stringify({}); 'jQuery.isEmptyObject(result);'を試してみてください。 – Wail

関連する問題