2010-05-17 152 views
0

我需要使用POST将视图中的网格行传递给控制器​​。我们的想法是通过对象具有以下结构(人)的一个IList:ASP.NET MVC Ajax:将IList从视图传递到控制器

  • 字符串名称
  • 字符串地址
  • 字符串ID

我想读从数据JQGrid并将其传递给控制器​​以填充IList。

我想构建数据对象来通过Ajax数据参数。

下面是Javascript代码:

$("#saveButton").click(
function() 
{ 
    var returnData = '{'; 
    var existingIDs = $('#listPeople').getDataIDs(); 

    if (idsPeople.length > 0) 
    { 
    for (i=0;i<idsPeople.length;i++) 
    { 

//Trying to build the obejct data 

ret = ret + '"people['+ i +'].Name":' $('#listPeople').getRowData(idsPeople[i]).Name + ','; 

ret = ret + '"people['+ i +'].Address":' $('#listPeople').getRowData(idsPeople[i]).Address+ ','; 

ret = ret + '"people['+ i +'].Id":' $('#listPeople').getRowData(idsPeople[i]).Id+ ','; 

//If it has more than one element 
     if (idsPeople.length>1 && (i+1)<idsPeople.length) 
     { 
     ret = ret + ','; 
     } 
    } 
    } 

ret = ret + '}'; 

我的Ajax功能发送:

var url_all = '<%=Url.Action("SaveData") %>; 

$.ajax({ 
type: "POST", 
url: url_all, 
data: ret, 
dataType: "json", 
success: function(){ 
    alert("OK"); 
}, 
error: function(){ 
    alert("Error: check SaveData"); 
} 
}); 

我的控制器:

public ActionResult SaveData(IList<PeopleHeader> people){ 

    // using debug to know if "people" variable has any values 

    return Json(true); 
} 

我得到的问题是一个错误: “System.NotSupportedException:固定大小的集合”,并且没有数据正在传递。

我认为我的问题依赖于创建对象...有没有更简单的方法来做这个过程?

由于提前,

回答

相关问题