Вот так я заполняю представление из модели представления PersonInformation ..
@model Client.Models.PersonInformation
<fieldset>
<legend>Contact Information</legend>
@foreach (var item in Model.MemberContacts)
{
<div class="editor-label">
@Html.DisplayFor(model => item.MemberContactDescription)
</div>
<div class="editor-field">
@Html.EditorFor(model => item.ContactInformation)
@Html.ValidationMessageFor(modelitem => item.MemberContactDescription)
</div>
}
</fieldset>
И ViewModel
public class PersonInformation
{
public Person person { get; set; }
public Address premiseAddress { get; set; }
public Address billingAddress { get; set; }
private ICollection<MemberContact> _MemberContacts { get; set; }
public virtual ICollection<MemberContact> MemberContacts
{
get { return _MemberContacts ?? (_MemberContacts = new HashSet<MemberContact>()); }
set { _MemberContacts = value; }
}
public PersonInformation()
{
BIMemberService lib = new BIMemberService();
ICollection<MemberContact> mcs = new List<MemberContact>();
foreach (ContactLib itm in lib.ContactLibs())
{
MemberContact mc = new MemberContact();
mc.MemberContactDescription = itm.Description;
mc.ContactLibID = itm.ContactLibId;
mc.ContactInformation = "test";
mcs.Add(mc);
MemberContacts.Add(mc);
}
}
}
Но этот (который имеет поле ввода текста), не имеет значения для действия post.
@Html.EditorFor(model => item.ContactInformation)
Это моё сообщение.
[HttpPost]
public ActionResult PersonInformation(PersonInformation member)
{
if (ModelState.IsValid)
{
db.Apply(member);
return View("Requirements", member.person.MemberRequirements);
}
return View(member);
}
При отслеживании кода строка ниже возвращает нулевое значение
member.MemberContacts.ContactInformation
Любой совет, высоко ценится.
Спасибо