Fortsetzung von this Frage, ich habe ein Formular mit allen Fahrzeugen für eine Person aufgelistet, die Fahrzeugfelder sind bearbeitbar, und sie sind jetzt erfolgreich wieder auf meine Aktion speichern .ASP.NET MVC mit UpdateModel, um Kind Datensätze
Jetzt möchte ich UpdateModel verwenden, um die Daten zu speichern, aber ich bin mir nicht sicher, wie ich es konstruiere. Hier ist meine Save Aktion jetzt:
<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
Als ich das laufen, es hat nichts zu retten, und Update keine Fehler werfen. Ich gehe davon aus, dass ich ein wenig mehr Richtung geben muss, damit die Magie funktioniert, denn UpdateModel weiß nicht, welches Element im Fahrzeug-Array für jedes Update verwendet wird.
Muss ich ein ValueProviderResult als dritten Parameter zu UpdateModel angeben? Wenn ja, wie erstelle ich ein Fahrzeug (i)? Bin ich völlig daneben, wie ich das aufgebaut habe?
Ich könnte das definitiv tun, aber können Sie dieses Argument gegen UpdateModel nicht auf der ganzen Linie machen? Nicht streiten für oder dagegen, nur lernen. – gfrizzle
Normalerweise würde ich UpdateModel verwenden, wenn keine Modellbindung verwendet wird, d. H. Es gibt keine Parameter oder nur einen ID-Parameter für die Methode, und ich bekomme die Werte über UpdateModel direkt vom ValueProvider. Für den Fall, dass Sie bereits ein gebundenes Modell haben, ist es nicht sinnvoll, UpdateModel zu verwenden. – tvanfosson