gpt4 book ai didi

asp.net-mvc - Html.EditorFor MVC4 中的子对象?

转载 作者:行者123 更新时间:2023-12-01 06:12:55 27 4
gpt4 key购买 nike

在我看来有以下代码:

@foreach (var parent in Model.Parents)
{
@foreach (var child in parent.Children)
{

@Html.TextAreaFor(c => child.name)

}
}

表单中的其他文本区域保存良好,但是当提交表单时,我的 Controller 中的 POST 方法获取一个带有空 Parents 字段的 viewModel。知道为什么吗?

最佳答案

如果您希望集合绑定(bind),则不能使用 foreach 循环。你必须使用 for 循环:

@for (int i = 0; i < Model.Parents.Count; i++) {
@for (int j = 0; j < Model.Parents[i].Children.Count; j++) {
@Html.TextAreaFor(x => x.Parents[i].Children[j].name)
}
}

或者,您可以为 parent 使用一个编辑器模板(甚至另一个为 child 使用)。这将需要您为父模型设置一个模板并将其放入您的 EditorTemplates 文件夹中,然后像这样调用它:

@Html.EditorFor(x => x.Parents)

MVC 将负责枚举和绑定(bind)。然后可以对 Children 列表执行相同的操作。

这是一个使用它们的 mvc 教程(我找不到 mvc4 版本):http://coding-in.net/asp-net-mvc-3-how-to-use-editortemplates/

关于asp.net-mvc - Html.EditorFor MVC4 中的子对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15233590/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com