Saya memiliki Model Tampilan yang terdiri dari objek Applicant
dan koleksi TeamMember
. Ketika saya memposting kembali model tersebut, koleksi Tim selalu nol. Saya sudah mencoba mengubah koleksi dari IEnumarable
asli saya menjadi List
tetapi tidak ada bedanya. Jadi saya mengubah Tindakan Edit Pengontrol untuk menerima FormCollection
, dan memverifikasi bahwa ada data di viewModel["member.FirstName"]
. Saya bingung mengapa pengikatannya tidak berfungsi. Saya mencoba membersihkan contoh kode saya sebanyak mungkin tetapi saya bingung dengan apa yang saya lewatkan. Bantuan apa pun sangat dihargai!
Lihat Properti Model
public class MyViewModel
{
public Applicant ApplicantInfo { get; set; }
public List<TeamMember> TeamMembers { get; set; }
}
Pengontrol
[HttpPost]
public ActionResult Edit(MyViewModel viewModel)
{
// viewModel.ApplicantInfo has the form data
// viewModel.TeamMembers = null
}
Lihat
<% using (Html.BeginForm())
{%>
<h3>
<a href="/id#">Applicant Information</a>
</h3>
<label>
City
<%: Html.TextBoxFor(m => Model.ApplicantInfo.City)%>
</label>
<label>
State
<%: Html.TextBoxFor(m => Model.ApplicantInfo.State)%>
</label>
<h3>
<a href="/id#">Team</a>
</h3>
<div>
<% foreach (var member in Model.TeamMembers)
{ %>
<div class="editor-field">
<%: Html.DropDownList("member.Type", Model.GetMemberTypes(member.MemberType.TypeId))%>
</div>
<div class="editor-field">
<%: Html.EditorFor(m => member.FirstName)%>
</div>
<div class="editor-field">
<%: Html.EditorFor(m => member.LastName)%>
</div>
<div class="editor-field">
<%: Html.EditorFor(m => member.Title)%>
</div>
<%} %>
</div>
<p>
<input type="submit" value="Save" />
</p>
<% } %>