将对象集合绑定到ASP.NET MVC 3中的选择列表中的数据

时间:2012-04-12 11:47:21

标签: asp.net-mvc-3

假设我有一个选择列表:

<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的对象的成员,是吗?看起来我需要一个默认的模型绑定器吗?

1 个答案:

答案 0 :(得分:0)

您希望绑定到一个对象数组,通常必须在客户端有一个字段数组才能绑定到服务器端的数组(有关详细信息,请参阅此处:http://www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx)。我认为从单个多选字段绑定到服务器端的多个对象,您将不得不编写自定义模型绑定器。