我是 MVC 的新手,理解这一点有一些困难。
为简单起见,我有一个“Person”对象,该对象有一个名为“EmailaddressList”的 IEnumerable 属性。
我通过 Visual Studio 2012 生成了一个编辑页面。主要对象属性是在编辑页面上生成的,带有名称和姓氏等文本框。
但是,在我看来,IEnumerable 子对象列表中的电子邮件地址列表不会自动生成。没关系,我已经为每种类型的电子邮件地址使用选项卡手动编写了该代码。
到现在为止还挺好。
问题: 当我在 HTTP-Post 方法中收到模型(人对象)时,EmailAddressList 为空。为什么会这样,我发送到视图时它不为空。I 列出电子邮件地址的选项卡在部分视图中。谁能给我一些提示,这是我在这里缺少的东西吗? *
查看代码
<div id="tabs">
<ul>
@foreach (var item in Model.EmailAddressList)
{
<li><a href="#@item.AddressType">@Html.Label(item.AddressType)</a></li>
}
</ul>
@foreach (var item in Model.EmailAddressList)
{
<div id="@item.AddressType">
<p>
@Html.TextBoxFor(s => item.EmailAddress, new { @class = "input-xxlarge" })
</p>
</div>
}
</div>
控制器(接收方法) 这里 person.EmailAddressList 为 null
[HttpPost]
public ActionResult Create(Person person)
{
if (ModelState.IsValid)
{
personRepository.InsertOrUpdate(person);
personRepository.Save();
return RedirectToAction("Index");
}
else
{
return View();
}
}