Mam zmodyfikowano aplikację Nerd Dinner umożliwiający edycję rekordów podrzędnych dodając następujący kod do DinnerForm.ascxAktualizacja Rodzic/dziecko Records z modelowych spoiw w 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>
jest to renderowania:
<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>
Nie zmodyfikowałem metody edycji akcji DinnersControler. Kolacja rodzica jest aktualizowana, jak zwykle, ale pojawia się UpdateModel (kolacja); nie wyświetla/aktualizuje rekordów RSVP dziecka.
Próbowałem kilka wariantów renderowania rekordów podrzędnych, aby segregatory modelu zobaczyły kolekcję bez powodzenia.
Aktualizuje zapisy rodzica/dziecka w jednym ujęciu przez wywołanie funkcji UpdateModel (Parent); możliwe z obecnymi modelami segregatorów?
@jamesshannon Ta odpowiedź jest bliska. Popraw model aktualizacji w pętli, aby przeczytać int i = 0; foreach (RSVP r in Dinner.RSVPs) { UpdateModel (r, "Dinner.RSVPs [" + i + "]"); i ++; } i możemy oznaczyć to zrobić/odpowiedzieć. –