Продолжая с этого вопроса, у меня есть форма со всеми транспортными средствами, перечисленными для человека, поля транспортных средств доступны для редактирования, и теперь они успешно отправляются обратно в мое действие Сохранить.
Теперь я хотел бы использовать UpdateModel для сохранения данных, но я не уверен, как их сконструировать. Вот мое действие Сохранить сейчас:
<ActionName("Edit"), AcceptVerbs(HttpVerbs.Post)> _
Function Save(ByVal form As Person, ByVal vehicles() As Vehicle) As ActionResult
Dim original = From v In MyDataContext.Vehicles Where v.person_id = Person.person_id
For Each item In original
For i = 0 To vehicles.Count - 1
If vehicles(i).vehicle_id = item.vehicle_id Then
UpdateModel(item, New String() {"license_nbr", "color"})
Exit For
End If
Next
Next
MyDataContext.SubmitChanges()
Return RedirectToAction("Index", "Home")
End Function
Когда я запускаю это, оно ничего не сохраняет, а UpdateModel не выдает никаких ошибок. Я предполагаю, что мне нужно дать ему немного больше направления, чтобы заставить магию работать, потому что UpdateModel не знает, какой элемент в массиве транспортных средств использовать для каждого обновления.
Нужно ли указывать ValueProviderResult в качестве третьего параметра для UpdateModel? Если так, как я могу создать один из транспортных средств (я)? Я совершенно не в курсе, как мне это настроить?