2012-11-07 28 views
1

我想通過列表從視圖到控制器,但我得到空值。編寫代碼如下:從視圖到控制器的通過列表

模型類:

public class testModel 
{ 
    public int ID { get; set; } 

    public string Name { get; set; } 

    public List<myModel> ParameterList {get;set;} 
} 

jQuery和Ajax代碼發佈數據控制器:

var myModel = { 
        "Name":"test",  
        "Description":"desc"  
       }; 

     var Object = { 
      Name: $("#Name").val(), 
      ParameterList : myModel 
     }; 

     $.ajax({ 
      url: '/controller/action', 
      type: 'POST', 
      data: JSON.stringify(Object), 
      dataType: 'json', 
      contentType: 'application/json; charset=utf-8', 
      success: function (data) { } 
       else { } 
      } 
     }); 

我得到的名稱屬性值而不是參數列表。 這裏有什麼問題?我錯過了什麼?

請幫我一把。

感謝

編輯:從意見控制器代碼,

public JsonResult Save(Object Obj) 
{ 
// logic for managing model and db save 
} 
+0

張貼代碼爲您的控制器以及 – CjCoax

+0

公共JsonResult保存(obj對象){//用於管理模型和數據庫保存的邏輯} –

+0

http://stackoverflow.com/questions/24337784/how-to-pass-the-list-of-objects-from-view-to-mvc-controller-using -json-字符串化 – sasi

回答

3

你說,

我的Name屬性而不是參數列表中獲得價值。

這讓我不知道什麼是myModel的結構,如您已聲明參數列表作爲基於myModel類型的列表:List<myModel> ParameterList

此外,我會建議你登錄JSON.stringify(Object)安慰和檢查JSON的價值,你實際上是發佈給控制器。

這裏是我找到了你必須回發

{"Name":"yasser","ParameterList":{"Name":"test","Description":"desc"}} 

也閱讀這些文章:

How can I pass complex json object view to controller in ASP.net MVC

Pass JSON object from Javascript code to MVC controller

1

試試這個:

var myModel = [{ 
       "Name":"test",  
       "Description":"desc"  
      }]; 

    var Object = { 
     Name: $("#Name").val(), 
     ParameterList : myModel 
    }; 

    $.ajax({ 
     url: '/controller/action', 
     type: 'POST', 
     data: Object, 
     dataType: 'json', 
     traditional: true, 
     contentType: 'application/json; charset=utf-8', 
     success: function (data) { } 
      else { } 
     } 
    }); 
0

只是這樣試試..希望這會有所幫助!

腳本:

var emp = [{ 'empid': 1, 'name': 'sasi' },{ 'empid': 2, 'name': 'sathish'}]; 
emp = JSON.stringify(emp) 
$.post("/Home/getemplist/", { 'emp': emp }) 

控制器:

在這裏,我只是改變了參數字符串類型。使用JavaScriptSerializer可以能夠將該字符串數據轉換到您的類對象列表..你可以更好地理解它,如果你看到下面我的代碼:

public void getemplist(string emp) 
{ 
    List<Emp> personData; 
    JavaScriptSerializer jss = new JavaScriptSerializer(); 
    personData = jss.Deserialize<List<Emp>>(emp); 
    // DO YOUR OPERATION ON LIST OBJECT 

} 
相關問題