Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何传递ListBoxFor的所有内容?_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 如何传递ListBoxFor的所有内容?

Asp.net mvc 如何传递ListBoxFor的所有内容?,asp.net-mvc,Asp.net Mvc,我目前正在将IEnumerable集合绑定到ListBoxFor,该集合按预期工作,并在POST上发送当前选定的值。但是,我需要发送所有的值而不是(我认为是必需的,无论是选择的还是不需要的)在给定的ListBox中的任何值。我该怎么做呢 (我可能可以在jQuery中装配一些东西,在提交时,它会手动选择一个框中的所有元素,但我想知道是否有更好的方法。)如果您想在提交时继续使用正常的浏览器表单序列化,请在提交之前编写一个javascript函数(钩住onclick事件或其他内容)它遍历列表框控件并连

我目前正在将IEnumerable集合绑定到ListBoxFor,该集合按预期工作,并在POST上发送当前选定的值。但是,我需要发送所有的值而不是(我认为是必需的,无论是选择的还是不需要的)在给定的ListBox中的任何值。我该怎么做呢


(我可能可以在jQuery中装配一些东西,在提交时,它会手动选择一个框中的所有元素,但我想知道是否有更好的方法。)

如果您想在提交时继续使用正常的浏览器表单序列化,请在提交之前编写一个javascript函数(钩住onclick事件或其他内容)它遍历列表框控件并连接所需的值(可能是逗号分隔的),并将其放置在隐藏字段中。该隐藏字段的值将正常提交,您可以在服务器端解析其中的各个值。这仍然是一些手工工作,但您可以避免干扰GUI状态(即选择所有所需的列表框项目),我同意这是您不想做的事情。

您是在谈论列表框中存在的标签吗?好的,这可能是我要走的路线。在这里也发现了一个重复的问题,这表明了同样的事情:酷,我已经成功地使用了多年:在我的例子中,我有“双列表框”控件,可以在两个列表框之间移动选项,其中右侧的一个是“选定”项,因此该列表框中的所有项都需要提交。你需要确保的唯一一件事是,你实际上连接了“选择框项目->隐藏字段”功能(有时我忘记了,想知道为什么没有保存我的更新)。另一个答案给出的建议与我的类似,但有点不同。我认为这有点复杂,因为涉及到更多的状态和间接连接,因此可能会出错(添加和删除动态表示每个列表项的单个隐藏字段)。在我的方法中,只有一个失败点。