Asp.net mvc 3 ASP.Net MVC3父子模型绑定

Asp.net mvc 3 ASP.Net MVC3父子模型绑定,asp.net-mvc-3,razor,model-binding,defaultmodelbinder,Asp.net Mvc 3,Razor,Model Binding,Defaultmodelbinder,我有一个使用用户对象作为模型的部分模板。用户有一个帐户集合。在这个部分模板上,我有一个循环,如下所示。_Account部分模板已绑定到Account类 @foreach (var item in Model.Accounts) { <tr> <td colspan="6"> <div>

我有一个使用用户对象作为模型的部分模板。用户有一个帐户集合。在这个部分模板上,我有一个循环,如下所示。_Account部分模板已绑定到Account类

  @foreach (var item in Model.Accounts)
            { 
                <tr>
                    <td colspan="6">
                        <div>
                            @Html.Partial("_Account", item)
                        </div>
                    </td>
                </tr>

            }
但是User.Accounts集合为空。然后我试了这个。帐户集合仍然是空的

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult UserDetails(User user,  
                             [Bind(Prefix="User.Accounts")]
                             FixupCollection<Account> Accounts, 
                             string actionType)
[AcceptVerbs(HttpVerbs.Post)]
公共操作结果用户详细信息(用户,
[Bind(Prefix=“User.Accounts”)]
固定收款账户,
字符串操作类型)

我可以使用默认的Modelbinder实现来实现这一点吗?或者我需要做任何不同的事情吗?

是的,您可以使用默认的Modelbinder。您只需要正确命名字段。因此,您需要循环输出如下内容:

...
<input type="text" name="user.Accounts[0].SomeTextField" />
<input type="text" name="user.Accounts[0].SomeOtherTextField" />
...
<input type="text" name="user.Accounts[1].SomeTextField" />
<input type="text" name="user.Accounts[1].SomeOtherTextField" />
...
。。。
...
...
如果您需要添加/删除帐户,硬编码索引会变得有点棘手。您可以在回发之前使用javascript重新分配名称。但这都是可能的。此问题提供了有关模型绑定的更多详细信息:


是的,您可以使用默认的模型活页夹。您只需要正确命名字段。因此,您需要循环输出如下内容:

...
<input type="text" name="user.Accounts[0].SomeTextField" />
<input type="text" name="user.Accounts[0].SomeOtherTextField" />
...
<input type="text" name="user.Accounts[1].SomeTextField" />
<input type="text" name="user.Accounts[1].SomeOtherTextField" />
...
。。。
...
...
如果您需要添加/删除帐户,硬编码索引会变得有点棘手。您可以在回发之前使用javascript重新分配名称。但这都是可能的。此问题提供了有关模型绑定的更多详细信息:


使用编辑器模板而不是局部视图-无需硬编码索引,因为该模板将自动正确索引所有对象,即使在添加和删除帐户时也是如此。见我对这个问题的回答:

编辑器模板的小说明如下:


使用编辑器模板而不是局部视图-无需硬编码索引,因为该模板将自动正确索引所有对象,即使在添加和删除帐户时也是如此。见我对这个问题的回答:

编辑器模板的小说明如下:


:我发现的唯一问题是它在HTML中公开了您的类名。我发现的唯一问题是它在HTML中公开了您的类名。