0

假设我有一个选择列表:

<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; }
  ...
}

如果选择列表的名称是选项并且我绑定到字符串列表,它将起作用。我想默认模型绑定器想要绑定到一个名为“Id”的字符串列表,它是一个名为 Options 的对象的成员,是吗?看起来我需要一个默认的模型绑定器吗?

4

1 回答 1

0

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

于 2012-04-12T12:04:15.730 回答