Я использовал SlickGrid и пытался добавить данные из сетки в БД, когда пользователь нажимал клавишу Enter.Это sendig и объект JSON (например, {"name":"value"}
), и он мне нужен как массив, так как я использую тип 'System.Collections.Generic.List'.Возможно ли в контроллере изменить его на массив JSON?Данные получены из самой сетки.Заранее спасибо!
Я видел подобные ситуации, но я все еще получаю сообщение об ошибке:
Newtonsoft.Json.JsonSerializationException: 'Невозможно десериализовать текущий объект JSON (например, {"name ":" value "}) в тип 'System.Collections.Generic.List`1 [DAL.SlickGridTest]', поскольку для корректной десериализации тип требует массив JSON (например, [1,2,3]).
это мое действие public ActionResult EditGridEnter(string mydata)
и это мое jquery $.post
grid.onKeyDown.subscribe(function(e) {
var keyPressed = event.keyCode || event.which;
if (keyPressed == 13) {
var myJSON = JSON.stringify(item);
$.post("/SlickGridTest/EditGridEnter", $("input[name=mydata]").val(myJSON));
}
});
Это то, что исходит от предмета:
var idData = jsonResult[key].id + 1;
var item = { "id": idData, "t_nome": "", "t_prof": "", "t_data": "", "t_morada": "", "t_percCompleto": "" };
все данные поступают изgrid в slickgrid
Вот как я десериализую объект:
var slcgrd= JsonConvert.DeserializeObject<List<SlickGridTest>>(mydata);
Я ожидаю получить значения в виде массива (например, [1,2,3]
) и получаю какobject ( Object {id: 43, t_nome: "name name", t_prof: "prof", …} )