У меня есть действие контроллера, которое должно получать целое число и объект, содержащий различные свойства, один из которых является общим списком объектов. Когда я отправляю JSON в действие с заполненным списком, все правильно отображает и я получаю список, содержащий объект, который я разместил. Если массив пуст, действие MVC привязывает свойство к нулевому списку пустого списка. Я хочу, чтобы пустой массив отображался в пустой массив, а не в нуль, поскольку пустой массив в этом случае означает, что в коллекции нет ничего, а нуль означает, что база данных должна быть проверена, чтобы увидеть, есть ли что-либо ранее сохранен в коллекции, но я не могу понять, что мне нужно изменить, чтобы правильно отобразить его. Мы используем Json.Net для сериализации объектов для возвращаемых объектов, но я не думаю, что он используется для десериализации объектов при привязке модели.
Передаваемые объекты:
public class ObjectInList
{
public decimal Value1 { get; set; }
public decimal Value2 { get; set; }
}
public class Criteria
{
public decimal? ANullableNumber { get; set; }
public IList<ObjectInList> ObjectsList { get; set; }
}
Запрос Json: "{\" Идентификатор \ ": 137, \" критерии \ ": {\" ObjectsList\ ": []}}"
Действие контроллера:
public ActionResult ProcessCriteria(int id, Criteria criteria)
{
return Json(_service.ProcessCriteria(id, criteria));
}
В действии контроллера я получаю нуль вместо пустого списка в объекте критериев. Это происходит, если я посылаю nulls для других свойств или нет. Не уверен, что до объекта, являющегося IList, а не IEnumerable? (Метод Json, обертывающий вызов службы, является нашей оболочкой, чтобы вернуть результат json, используя Json.Net для сериализации ответа - нуль находится в объекте критериев, а не в возврате.)
Я предполагаю, что это что-то довольно простое, что мне не хватает, но я не могу понять, что, какую-либо помощь очень ценили.