Если вы хотите, чтобы ваш html корректно связывался с вашей моделью, вы должны обратить внимание на html, который вы отображаете.Проблема, которую я вижу с вашим html,
<input type='hidden' value = 'Items.Index' value= 'some_guid' autocomplete = 'off'/>
, с этим механизмом связывания html-модели будет пытаться связать Items как дочерние объекты объекта Template, где он не найдет ни одного свойства с именем Items, и эти значения не будут связанык модели.вам нужно изменить скрытое поле на
<input type='hidden' name = 'Categories[category's guid].Items.Index' value = 'some guid' autocomplete = 'off'/>
, и вам нужно просто вызвать updatemodel в вашем методе действия, например
UpdateModel(yourobject);
Я не тестировал этот код, но я более чем уверенчто изменение вашего HTML таким образом поможет вам разобраться.@Mlchael Grassman вам больше не нужно использовать целочисленные идентификаторы для привязки коллекции.Пожалуйста, прочитайте сообщение Стива для получения дополнительной информации.На самом деле вам также не нужен GUID, кроме случайного числа, уникального для контекста страницы, при условии, что вы добавили дополнительное скрытое поле с индексом имени и значением, указанным в указанном выше случайном числе.Я написал в блоге о деталях формы Master в asp.net mvc, используя (и модифицируя) метод BeginCollectionItem, написанный Стивом.в части одной из этой серии блогов я просто показал, как можно динамически добавлять поля своей подробной записи на стороне клиента без вызова ajax.Во второй части я перенес шаблон редактора подробных записей в движок шаблонов jquery и отрисовал его на стороне клиента так, как он бы выглядел, если бы отображался через вызов ajax.