Ich habe die Nerd Dinner Anwendung modifiziert Bearbeitung von untergeordneten Datensätzen zu ermöglichen, indem Sie den folgenden Code in das DinnerForm.ascx ZugabeAktualisierung Eltern-/Kind-Datensätze mit Modell Binder in ASP.Net MVC
<p>
<%int i = 0;
foreach (NerdDinner.Models.RSVP rsvp in this.Model.Dinner.RSVPs)
{ %>
<%= Html.Hidden("Dinner.RSVPs[" + i + "].RsvpID", rsvp.RsvpID)%>
<%= Html.Hidden("Dinner.RSVPs[" + i + "].DinnerID", rsvp.DinnerID)%>
<%= Html.TextBox("Dinner.RSVPs[" + i + "].AttendeeName", rsvp.AttendeeName)%>
<% i += 1;
} %>
</p>
es rendert diese:
<p>
<input id="Dinner_RSVPs[0]_RsvpID" name="Dinner.RSVPs[0].RsvpID" type="hidden" value="36" />
<input id="Dinner_RSVPs[0]_DinnerID" name="Dinner.RSVPs[0].DinnerID" type="hidden" value="63" />
<input id="Dinner_RSVPs[0]_AttendeeName" name="Dinner.RSVPs[0].AttendeeName" type="text" value="kp" />
<input id="Dinner_RSVPs[1]_RsvpID" name="Dinner.RSVPs[1].RsvpID" type="hidden" value="37" />
<input id="Dinner_RSVPs[1]_DinnerID" name="Dinner.RSVPs[1].DinnerID" type="hidden" value="63" />
<input id="Dinner_RSVPs[1]_AttendeeName" name="Dinner.RSVPs[1].AttendeeName" type="text" value="jim" />
</p>
Ich habe die Post-Edit-Action-Methode von DinnersControler nicht geändert. Das Elternessen wird wie gewohnt aktualisiert, aber es erscheint das UpdateModel (Abendessen); Die untergeordneten RSVP-Datensätze werden nicht angezeigt/aktualisiert.
Ich habe ein paar Variationen beim Rendern der untergeordneten Datensätze versucht, so dass die Modellbinder die Sammlung sehen werden, ohne Glück.
Aktualisieren Eltern/Kind-Datensätze in einer Aufnahme durch den Aufruf UpdateModel (Parent); möglich mit den aktuellen Modellbindern?
@jamesshannon Diese Antwort ist in der Nähe. Fixiere dein Update-Modell in der Schleife, um zu lesen int i = 0; foreach (RSVP r in Dinner.RSVPs) { UpdateModel (r, "Dinner.RSVPs [" + i + "]"); i ++; } und wir können dies als erledigt/beantwortet markieren. –