2017-09-13 13 views
0

C#でAJAXリクエストによって送信されたJson形式のデータを使用するにはどうすればよいですか?AJAXとC#を使用してオブジェクトにJsonデータをマップする

はここでここで、コントローラのjQueryとAJAX

<script type="text/javascript"> 
    $(function() { 
     $("#btnGet").click(function() { 
      var values = 
       { 
        "Name": "Manuel Andrade", 
        "DateOfBirth": "12/01/1995" 
       } 
      $.ajax({ 
       type: "POST", 
       url: "/api/WebApi/GetAge", 
       data: values, 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (response) { 
        alert("Hello: " + response.Name + ".\nCurrent Date and Time: " + response.DateTime); 
       }, 
       failure: function (response) { 
        alert(response.responseText); 
       }, 
       error: function (response) { 
        alert(response.responseText); 
       } 
      }); 
     }); 
    }); 
</script> 

とビューの:

public class PersonController : ApiController 
{ 
    [System.Web.Http.Route("api/WebApi/GetAge")] 
    [System.Web.Http.HttpPost] 
    public Person GetAge(Person person) 
    { 
     //person = new Person(); 
     //person.Name = "Luis"; 

     JsonTest(person); 


     //int ageInMonths = calculateAgeInMonths(person); 
     //int ageInYears = calculateAgeInYears(person); 

     //System.Diagnostics.Debug.WriteLine(ageInMonths); 
     //System.Diagnostics.Debug.WriteLine(ageInYears); 

     return person; 
     } 
    } 

人モデルビューでJSON変数とまったく同じ属性を持っています。自動的にオブジェクトを作成してはいけませんか?メソッドJsonTest()は正しく動作し、データのシリアル化に使用されます。人のインスタンス化とLuisへの割り当てをコメント解除すると、メソッドはそのデータを持つJsonをビューに返します。しかし、私がpersonパラメータを使用しようとすると、null例外がスローされます。ビューにvar値を渡してGetAgeメソッドに渡すことで、オブジェクトに割り当てることができますか?

+0

どのフレームワークとどのバージョンがこれですか? –

答えて

0

contentType: "application/json; charset=utf-8",行を削除してもうまくいきました。

デフォルトでapplication/jsonとして返されません。

関連する問題