2010-07-13 41 views
0

我在我的应用程序中使用了asp.net mvc 2.0,应用程序需要从ListBox,从视图到控制器获取多个值。将ListBoxFor中的多个值传递给控制器​​,同时回传

该scenerio是这样的,我有两个listbox说ListBox1和ListBox2和一个页面的加载,我初始加载Listbox1与一些数据。

现在用户可以将一些数据从一个Listbox1传输到Listbox2,然后想要选择控制器中ListBox2中的多个数据。

为了这个目的,我使用了两个“ListBoxFor”,并在视图中为ListBox控件提供了“IEnumerable”作为类的属性。

现在,当我将数据回传给控制器时,我没有在我的类对象中获得对应于“ListBox2”的数据。

总之,我想选择列表框2中存在的多个数据,在我的控制器上对表单进行回发。

请帮助并提供此示例。

+1

请问您可以发布您的标记和操作方法签名吗? – 2010-07-13 13:14:11

回答

0

一个http帖子不会包含选择框中的所有值,只有选中的一个或多个。您可以使用javascript来选择所有值(确保select设置为多个),但这不是我喜欢的方式,因为它会改变页面对用户的显示方式。

我会推荐使用javascript将选定的值添加到隐藏的字段。它的工作是这样的:

  1. 你的模型有一个列表选择
  2. 的选择,使用JavaScript从ListBox1中移动到ListBox2
  3. 此外,新和第二
  4. 在取消选择,您将删除输入并将索引更高的所有输入更新为索引-1以保留序列性

然后,当您发布时,数据将自动绑定到您的模型的选择列表。

+0

感谢您的回复。但仍然结果是不可想象的。 Z控制器将不会在对象中获得任何东西。当我检查视图源时,我得到了这个html。 “​​<选择类=” allSitesUid “ID = ”SiteContainer_AvailableSites“ 多重= ”多个“ 名称= ”SiteContainer.AvailableSites“ 风格= ”宽度:250像素“>” 此HTML不包含选择的项目,即使这些网站被选中。我正在寻找直接绑定类对象中的选定对象,并将它们传递给控制器​​。有没有办法,我们可以实现这一目标。 – 2010-07-19 05:32:05