У меня есть приложение .Net mvc с интерфейсом ExtJS.Я пытаюсь обновить несколько записей из сетки.Записи передаются как модель с прокси Ext.Direct
, который соответствует этому типу .Net:
public class AgreementType
{
public int AgreementTypeId { get; set; }
public string Value { get; set; }
public bool IsDeleted { get; set; }
}
Это метод, который я передаю:
public ActionResult UpdateAgreementType(AgreementType at)
{
return Json(new
{
success = _vendorRepo.UpdateAgreementType(at)
});
}
И вот полезная нагрузка запроса:
{"action":"Main","method":"UpdateAgreementType","data":[[{"AgreementTypeId":10,"Value":"Spot PO","IsDeleted":false},{"AgreementTypeId":11,"Value":"PROCARD-test","IsDeleted":false}]],"type":"rpc","tid":12}
Я получаю эту ошибку:
Невозможно десериализовать текущий массив JSON (например, [1,2,3]) в тип 'Project.Model.AgreementType ', потому что тип требует JSON-объекта (например, {"name": "value"}) для правильной десериализации.Чтобы исправить эту ошибку, либо измените JSON на объект JSON (например, {"name": "value"}), либо измените десериализованный тип на массив или тип, который реализует интерфейс коллекции (например, ICollection, IList), например List, который можетбыть десериализованным из массива JSON.JsonArrayAttribute также может быть добавлен к типу, чтобы принудительно десериализовать его из массива JSON.Путь '', строка 1, позиция 1.
Когда я пытаюсь передать одну запись, она корректно интерпретирует данные в мой тип и успешно обновляется.РЕДАКТИРОВАТЬ: Вот полезная нагрузка для этого:
{"action":"Main","method":"UpdateAgreementType","data":[{"AgreementTypeId":11,"Value":"PROCARD-test","IsDeleted":false}],"type":"rpc","tid":12}
Я немного нуб с JSON, но я понимаю, что что-то не так с форматом данных.Я попытался передать значения явно, а не только модель, но это не сработало.Есть предложения?