如何从HTML.DropDownList中选择的单个对象中jQuery POST多个参数



我正在使用

@Html.DropDownList("Items", new SelectList(Model.Items, "ItemID", "ItemDisplayName"))

以呈现选择列表。在我的jQuery中,我正在张贴所选的值(ItemID)。但是,我需要发布比所选Item对象更多的值。我似乎只能选择其中一个值作为选择的数据值。有没有一种方法可以从所选对象中提取更多的值来插入jQueryPOST?

我不确定什么会起作用,也许是一种了解所选索引的方法,然后做一些类似(伪代码警报)Model.Items[7].ItemIDModel.Items[7].OtherID等的事情。

编辑:我想我可能会这么做。。。

@Html.DropDownList("Items", new SelectList((from i in Model.Items select new { ID = i.FirstID + "," + i.SecondID + "," + i.ThirdID, i.ItemDisplayName }), "ID", "ItemDisplayName"))

但之后我必须在控制器中使用字符串拆分来解析它们。。。不理想但可能?

edit:我最终使用了linq,并解析了我传递的逗号分隔的字符串,这看起来现在还可以,但我会在这篇文章中找到更好的解决方案和选定的答案。

我相信您可以使用encodeURIComponent($('select').val())对表单传输的多选列表进行编码:

$.post('<url>', { key : encodeURIComponent($('#ID').val()) }, function (data) { ... });

当您对已选择多个<option>的多选元素调用.val()时,它将返回一个包含所有值的数组:http://api.jquery.com/val

下面是一个演示:http://jsfiddle.net/jasper/9He6s/

最新更新