如何将Listbox(select size =“n”)项值绑定到IEnumerable <int> </int>

时间:2014-07-09 11:17:02

标签: asp.net-mvc-4 ienumerable html-select model-binding

我的表单上有一个select元素。我用javascript填充其内容。视图模型具有名为Fruits of IEnumerable类型的属性。我提交表单时是否可以将此select绑定到该属性?所以要说清楚,假设有一个大小为5的表格,同时是空的。然后我用java脚本添加一些项目(选项):

 <select size="5">
  <option value="1">Apple</option>
  <option value="2">Banana</option>
  <option value="3">Grape</option>
  <option value="4">Pinapple</option>
 </select>

当我提交表单时,我希望Fruits属性包含上述选项值。怎么做的?我无法想办法。

1 个答案:

答案 0 :(得分:0)

终于找到了它,但有些东西不见了。为了克服在视图上获取空ListBox的第一个问题,我做了这个:

 ListBoxFor(x=>x.Fruits,new List<SelectListItem>(),new{style="width:160px;display:block"})

这会在视图中显示空<select multiple="multiple" size="5" name="Fruits">。然后我用javascript将一些项添加到列表框中(确切地说,向select中添加选项)。最大的痛苦始于此之后。提交表单时,Fruits属性为null,因此列表框项目未受约束。经过大量挖掘后,我发现为了将ListBox项绑定到某个集合,需要选择所需的项。因此,即使列表框中有10个项目,它们也不会绑定到我的Fruits模型属性,除非我在提交之前选择它们。选择添加的项后,Fruits属性包含相应的值。但是我不想在添加它们之后选择所有项目。我知道这可以通过javascript自动完成,但最好通过其他方式绕过它。