【发布时间】:2011-06-02 09:45:08
【问题描述】:
我有以下操作来显示一个包含 3 个项目的表单:
[HttpGet]
public ActionResult ReferAFriend()
{
List<ReferAFriendModel> friends = new List<ReferAFriendModel>();
ReferAFriendModel f1 = new ReferAFriendModel();
ReferAFriendModel f2 = new ReferAFriendModel();
ReferAFriendModel f3 = new ReferAFriendModel();
friends.Add(f1);
friends.Add(f2);
friends.Add(f3);
return View(friends);
}
然后是 Post 操作
[HttpPost]
public ActionResult ReferAFriend(IEnumerable<ReferAFriendModel> friends)
{
if(ModelState.IsValid){
编辑 我的视图如下所示:
@model IEnumerable<Models.ReferAFriendModel>
@for(int i=0;i<Model.Count();i++)
{
@Html.Partial("_ReferAFriend", Model.ElementAt(i));
}
部分看起来像这样:
@model Models.ReferAFriendModel
<p>
@Html.LabelFor(i => i.FullName) @Html.TextBoxFor(i => i.FullName)<br />
@Html.LabelFor(i => i.EmailAddress) @Html.TextBoxFor(i => i.EmailAddress)
@Html.HiddenFor(i=>i.Id)
</p>
当我发布时,我可以看到在 Request.Form 对象中发布的字段,例如 Request.Form["FullName"] 将显示:"David Beckham","Thierry Henry"。 “Chicharito Fergurson”,这是我在表格中输入的值。 但是,在 Post 操作中,'friends' 的值始终为 null。ReferAFriendModel 具有三个公共属性 Id、EmailAddress 和 FullName。
我做错了什么?
【问题讨论】:
-
您的表单/视图可能有问题。您应该显示该代码。
标签: c# asp.net-mvc asp.net-mvc-3 razor model-binding