假设我有一个选择列表:
<select multiple="multiple" name="Options.Id">
<option value="value1">Option 1</option>
<option value="value2">Option 2</option>
<option value="value3">Option 3</option>
<option value="value4">Option 4</option>
<option value="value5">Option 5</option>
</select>
当表单提交到服务器时,数据的格式为:
Options.Id=value1&Options.Id=value4&Options.Id=value5
如果选择了选项1,4和5.
默认模型绑定器无法将其绑定到类型为
的对象列表class MyData
{
String Id { get; set; }
...
}
如果选择列表的名称是Options并且我绑定到字符串列表,它将起作用。我想默认模型绑定器想要绑定到一个名为'Id'的String列表,它是一个名为Options的对象的成员,是吗?看起来我需要一个默认的模型绑定器吗?
答案 0 :(得分:0)
您希望绑定到一个对象数组,通常必须在客户端有一个字段数组才能绑定到服务器端的数组(有关详细信息,请参阅此处:http://www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx)。我认为从单个多选字段绑定到服务器端的多个对象,您将不得不编写自定义模型绑定器。