Мне нужно передать строки сетки из представления в контроллер с помощью 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: сбор фиксированного размера», и данные не доставляются.
Я думаю, что моя проблема связана с созданием объекта ... есть ли более простой способ выполнения этой процедуры?
Спасибо заранее,