2012-07-31 55 views
0

我有一個像這樣在我的ASP.NET MVC 2項目模型,通JSON對象名單行動

public class HomeModel 
    { 
     public string Name { get; set; } 

     public int HomeCount { get; set; } 

     private List<string> _list; 
     public List<string> List 
     { 
      get 
      { 
       if (_list == null) 
       { 
        _list = new List<string>(); 
       } 
       return _list; 
      } 
      set 
      { 
       _list = value; 
      } 
     } 
     private List<ChildModel> _children; 
     public List<ChildModel> Children 
     { 
      get 
      { 
       if (_children == null) 
       { 
        _children = new List<ChildModel>(); 
       } 
       return _children; 
      } 
      set 
      { 
       _children = value; 
      } 
     } 
    } 
    public class ChildModel 
    { 
     public string Address { get; set; } 
    } 

和腳本

var obj = new Object(); 
      obj.Name = "MyName"; 
      obj.HomeCount = 56; 

      obj.List = new Array(); 
      obj.List[0] = "AAA"; 
      obj.List[1] = "bbb"; 
      var child = new Object(); 
      child.Address = "ccc"; 
      obj.Children = new Array(); 
      obj.Children[0] = child; 
      var child2 = new Object(); 
      child.Address = "ddd"; 
      obj.Children[1] = child2; 

      jQuery.ajaxSettings.traditional = true 
      $.post('/Home/Test',obj, function (data) { }); 

我的問題是,即使字符串列表在控制器的動作產生,對象列表的計數是0.誰能告訴如何做到這一點?

回答

0

當您將對象作爲jQuery的ajax有效內容提交時,它將轉換爲數據的鍵/值對。如果這是$不用彷徨,而不是.POST $例如,你會風與

名= MYNAME &等

這篇文章應該給你,你在找什麼? http://www.intelligrape.com/blog/2010/06/11/jquery-send-json-object-with-an-ajax-request/

我也建議JSON /對象的文字符號在這裏:

VAR OBJ = { 名稱: 「MYNAME」, HomeCount:56, 列表:[ 「AAA」, 「BBB」], 孩子:{ 個地址: 「CCC」, 兒童: //等 ] }}

見json.org的規格,並jslint.com/jshint.com進行驗證。