gpt4 book ai didi

c# - 如何在 mvc 中提交操作时获取所有 ListBox 项目(不仅是选定的项目)

转载 作者:行者123 更新时间:2023-11-30 15:45:39 25 4
gpt4 key购买 nike

我如何在 asp.net mvc2 项目中的提交操作中获取所有 ListBox 值(不仅是选定的项目)。

我正在使用像

这样的 Ajax 表单
Ajax.BeginForm("actionname", new....)

只有当我选择列表框中的所有项目时,我才会得到列表框中的所有项目。

有没有办法在操作页面的 lisbox 中获取所有项目,不仅是选定的项目

最佳答案

这并不像您想象的那么容易完成,因为从 html 的角度来看,只有在下拉列表中选择的值才是在提交时发送到服务器的值。

但是,如果您可以使用 jquery 将数据作为 json 发送,您可以序列化列表框并将其与模型一起发送到操作。

一种方法是这样的:

假设您在任何给定的 Controller 中有以下操作

public ActionResult MyAction(字符串 myDropDown,字符串 myDropDownValues)

并且您有要提交的 Ajax 表单

@using (Ajax.BeginForm("MyAction", new AjaxOptions()))
{
@Html.Hidden("myDropDownValues")
<select name="myDropDown" id="myDropDown">
<option value="0">First</option>
<option value="1">Second</option>
<option value="2">Third</option>
<option value="3">Fourth</option>
<option value="4">Fifth</option>
</select>
<input type="submit" id="submit" />
}

您现在要做的是像这样挂接到表单上的提交事件:$('form').submit(function(){});

如果您的页面上有多个表单,您可能应该使用更好的选择器。在此提交事件中,您可以使用 .each() 方法遍历下拉列表,然后在其中编写 json。

创建 json 后,您可以将其添加到隐藏字段,以使其更易于在服务器端处理。

它最终可能看起来有点像这样:

<script>
$(document).ready(function () {
$('form').submit(function () {
var json = "";
$("#myDropDown option").each(function () {
value = $(this).val()
text = $(this).html()

if (json.length != 0) json += ",";

json += value + ":" + text;
});

$('#myDropDownValues').val(json.toString());
});
});
</script>

当我现在提交表单时,字符串 myDropDownValues 具有以下内容:

0:第一,1:第二,2:第三,3:第四,4:第五

关于c# - 如何在 mvc 中提交操作时获取所有 ListBox 项目(不仅是选定的项目),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4966015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com