当我尝试从包含相同部分视图两次的页面传回值时,我遇到了问题。
我的类定义如下:
public class Account : IEntity
{
public decimal CurrentBalance { get; set; }
public List<Person> AccountHolders { get; set; }
//to get round the non-existing enum support in EF4.3 wrap enum to int
public int StatusValue { get; set; }
public AccountStatus Status { get { return (AccountStatus)StatusValue; } set { StatusValue = (int) value; } }
public DateTime AccountOpenDate { get; set; }
public DateTime AccountCloseDate { get; set; }
public DateTime AccountSuspensionDate { get; set; }
}
它有一个 Person 列表,我为其制作了部分视图(针对单个人)。
<fieldset>
<legend>Person</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Age)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Age)
@Html.ValidationMessageFor(model => model.Age)
</div>
</fieldset>
在帐户的“创建”页面中,我包含了我创建的 2 个部分视图,如下所示。
<div id="Person1">
@Html.Partial("_CreateAccountHolder" )
</div>
<div id="Person2">
@Html.Partial("_CreateAccountHolder")
</div>
当我查看回发的内容时,它包含我放入页面表单值中的值(名称和年龄作为人员的属性),并且我按预期拥有了它们:
CurrentBalance=19&状态=关闭&AccountOpenDate=12%2F12%2F2012&Name=mustafa&Age=20&Name=sofia&Age=20&AccountCloseDate=12%2F12%2F2012&AccountSuspensionDate=12%2F12%2F2012
但是当我查看控制器上的创建方法时,我看到 AccountHolder 列表为空。我尝试过各种签名...
公共ActionResult Create(帐户personalaccount,Person [] accountHolders)
public ActionResult Create(帐户个人帐户,列出帐户持有者)
如果我只有 Person 的一个部分视图并且有这样的控制器,我可以看到 Person 对象正确绑定。
public ActionResult Create(帐户个人帐户,个人帐户持有人)
关于我哪里出错了有什么想法吗?