2017-05-11 6 views
0

I持って問題試してみて、ピンポイントするために簡略化され、次のAJAX呼び出し、:しかしAJAXはnullを返します

[HttpPost] 
    public ActionResult submitForm(string json) 
    { 
     System.Diagnostics.Debug.WriteLine("made it here"); 

     var check = System.Web.Helpers.Json.Decode(json); 

     System.Diagnostics.Debug.WriteLine(check); 
     System.Diagnostics.Debug.WriteLine(check.glbBlue); 

     return View(); 
    }  

:これは、次のメソッドを呼び出す

$('#userUpdateForm').submit(function (e) { 
      $.ajax({ 
       type: "POST", 
       url: '@Url.Action("submitForm", "Home")', 
       data: JSON.stringify({ 
        'blue': window.glbBlue, 
        'eg2': 'eg3' 
       }), 
       contentType: "application/json; charset=utf-8", 
       success: function (result) { 
        alert("Success"); 
       }, 
       error: function (result) { 
        alert("A problem occured when submitting the form."); 
       } 
      }); 
     e.preventDefault(); 

     }); 

をコントローラが受け取るJSONはnullです。なぜこれが起こるのですか?私はブラウザに要求ペイロードがあり、私が期待している値があることがわかります。 'Window.glbBlue'はグローバル値で、アラートがその値をチェックするために使用されたときに正しく設定されていることもわかっています。

答えて

2

あなたは

data: JSON.stringify({ 
       'blue': window.glbBlue, 
       'eg2': 'eg3' 
      }) 

は、あなたの行動は、2パラメータ blueeg2を受け取ることができますが供給されていない唯一のパラメータ jsonを受信したデータを送信します。このため、 jsonnullです。

public ActionResult submitForm(string json) {}からpublic ActionResult submitForm(string blue,string eg2) {}に変更できます。

OR

データ:JSON.stringify({JSON: "何か"})

+0

おかげで、私のためにそれを修正! – peanut

+0

大歓迎です。@ user3316147 – Ashiquzzaman

関連する問題