У меня есть приложение ASP.NET MVC.В определенный момент я получаю FormCollection в методе Controller, который я хочу использовать для обновления модели.В коллекции не все значения являются свойствами этой модели, а обновляемое свойство является элементом из списка, и этот список также является элементом из другого списка.Примерно так (надеюсь, это понятно):
propertyToUpdate --> model.Items[0].Subitems[0].SomePropertyClass.Value;
Я пробовал это в моем контроллере:
UpdateModel(model);
Проблема в том, что это не работает, и я предполагаю, что у него что-то естьделать с тем, что отражение не работает.Я отправился на поиски и наткнулся на эту статью .Поэтому я понимаю, что использование префикс-параметра решает проблему.Но не в моем случае, поскольку свойства лежат "глубже" в модели как элементы из списка.
Кто-нибудь знает, как я могу решить эту проблему?
Обновление:
Вот пример EditorTemplate для свойства:
@model Q95.Domain.Property
<li>
@Html.DisplayFor(p => p.Description) :
@Html.DisplayFor(p => p.Quantity.Value)
@Html.DisplayFor(p => p.Quantity.Unit.Description)
<br />
@Html.TextBoxFor(p => p.Quantity.Value)
</li>
Этот шаблон называется так:
<ul>
@Html.EditorFor(model => model.SegmentRequirement.MaterialRequirements[j].Properties)
</ul>
Достаточно ли этого кода или что-то по-прежнему отсутствует?
Update2:
Хорошо, во всех под-свойствах я определил конструкторы без параметров и теперь я вызываю:
UpdateModel(segmentRequirement, "SegmentRequirement", form.ToValueProvider());
Это обновляет модель, но все из MaterialRequirements восстанавливаются ...: S