我有以下复杂模型: 类别 - 有 -> 列表其中有 -> 列表
我正在尝试执行一个创建操作,在其中我可以拉出所有现有类别,并为每个类别插入一个列表,包括子项目。例如: -Cat1 -- 新项目组1 --- 新项目1 --- 新项目2 --- 新项目3 --- 新项目4
-Cat2 -- 新项目组2 --- 新项目1 --- 新项目2 --- 新项目3 --- 新项目4
我的问题是,我可以使用默认的模型绑定(bind)器来实现此目的吗?或者我应该使用其他东西?这会增加多少工作量:)?
谢谢!
最佳答案
您可以使用默认的模型绑定(bind)器来处理复杂的对象和列表,您只需为您发布的数据建立索引,以便它可以正确地找出它。
Phil Haack 的文章 Model Binding to a List涵盖您需要做的事情。简而言之,只需使用隐藏字段对列表字段进行索引,如下所示:
<input type="hidden" name="products.Index" value="0" />
<input type="text" name="products[0].Name" value="Beer" />
<input type="text" name="products[0].Price" value="7.32" />
命名的products.Index
字段描述您的“产品”列表有一个索引“0”。 Name 和 Price 字段是索引 0 处对象的属性。请注意,索引不必是整数,因此如果您要绑定(bind)到字典,则可以使用任何内容作为索引值。
关于asp.net-mvc - 复杂的强类型对象 + 默认 ModelBinder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2234382/