Выяснили причину и решение здесь - было полезно прочитать ссылку «Привязка модели к списку».
Проблема здесь в том, что связыватель модели предполагает, что индекс будет начинаться с нуля и продолжаться.Сгенерированные имена для каждого элемента следуют этому шаблону:
[0].ProductID, [0].Name
[1].ProductID, [1].Name
[2].ProductID, [2].Name
Однако, поскольку я использовал одну форму AJAX для отправки каждой записи, связыватель модели мог создать действительный список из индекса, только если я отредактировалпервый элемент ([0]).
Если я отредактировал второй элемент, в записи формы были только значения для [1] .ProductId и [1] .Name - так что это не был индекс, начинающийся с нуля- поэтому связыватель не смог воссоздать данные продукта - отсюда и нулевое значение.
Мое решение состояло в том, чтобы обработать POST таким, какой он есть на самом деле, - одним редактированием одного объекта.Чтобы сделать это, мне нужно было изменить атрибут «name» в каждом элементе управления на «ProductID» и «Name», а затем изменить метод Update, который обрабатывает POST, чтобы ожидать один тип продукта.
Это сработалоидеально.