Проблема после сериализации MVC 5, когда в коллекции отсутствует пара имя-значение
Недавно я столкнулся с проблемой в моем проекте MVC5 C#, где мои динамически сгенерированные элементы HTML (набор телефонных номеров) могли быть размещены на сервере, где отсутствовали индексы. Вот так, отсутствует [1]:
ClientInfo.Phones[0].PhoneNumber
ClientInfo.Phones[2].PhoneNumber
ClientInfo.Phones[3].PhoneNumber
Когда на странице есть более одного для добавления, или если пользователь добавляет другое вручную, добавочная нумерация увеличивается для динамических элементов. Но когда пользователь удаляет, скажем, динамический элемент [1], то в коллекции отсутствует элемент. Когда форма отправляется на сервер, метод, который получает, ожидает класс ClientInfo со свойством IEnumerable, среди множества других вещей. Когда значения их индексов упорядочены (0,1,2,3,...), все сериализуется, как и ожидалось, в это свойство коллекции Phones. Когда один отсутствует, как в примере выше, сериализуются только те, которые пронумерованы, в порядке от 0. В этом случае индекс 2, 3 не будет включен, только [0].
Я могу видеть все значения и их порядковый номер в Fiddler при публикации формы, поэтому я знаю, что они правильно проходят по проводам. Есть ли способ сериализации этих предметов, несмотря на то, что они не имеют всех элементов коллекции? Любая помощь приветствуется! Спасибо!