Ho modificato l'applicazione Nerd Dinner per consentire la modifica dei record figlio aggiungendo il seguente codice al DinnerForm.ascxAggiornamento padre/figlio record con leganti modello 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>
si sta rendendo questo:
<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>
Non ho modificato il metodo di azione Post Edit di DinnersControler. La cena dei genitori si aggiorna come al solito, ma appare UpdateModel (cena); non sta visualizzando/aggiornando i record RSVP figlio.
Ho provato alcune varianti sul rendering dei record figlio in modo che i raccoglitori modello possano vedere la raccolta, senza fortuna.
Si sta aggiornando i record padre/figlio in uno scatto chiamando UpdateModel (Parent); possibile con gli attuali leganti modello?
@jamesshannon Questa risposta è vicina. Correggere il modello di aggiornamento nel ciclo per leggere int i = 0; foreach (RSVP r in Dinner.RSVPs) { UpdateModel (r, "Dinner.RSVPs [" + i + "]"); i ++; } e possiamo contrassegnare questo fatto/risposta. –