我已經修改了Nerd Dinner應用程序中加入以下代碼到DinnerForm.ascx更新父/與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>
它渲染這個允許的子記錄編輯:
<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>
我還沒有修改DinnersControler的Post Edit Action方法。家長晚餐照常更新,但它出現UpdateModel(晚餐);沒有看到/更新孩子RSVP記錄。
我已經嘗試了一些渲染子記錄的變體,以便模型粘合劑將看到集合,但沒有運氣。
正在通過調用UpdateModel(Parent)更新一次性父/子記錄;目前的模型粘合劑可能嗎?
@jamesshannon此答案接近。修正你的更新模型在循環中讀取 int i = 0; (Dinner,RSVP中的RSVP r){ UpdateModel(r,「Dinner.RSVPs [」+ i +「]」); i ++; } 我們可以標記完成/回答。 – 2009-07-16 12:24:32