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

问题描述:

我使用如何从一个HTML.DropDownList中选择一个对象jQuery POST多个参数?

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

呈现一个选择列表。在我的jQuery中,发布所选值(ItemID)。但是,我需要发布比选择的Item对象更多的值。看来我只能选择其中一个值作为select的数据值。有没有一种方法可以将更多的值从所选对象中拉出来插入到我的jQuery POST中?

我不知道什么工作,也许是一个办法知道所选择的指数,然后像做(伪代码警报)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")) 

但后来我不得不解析出来在使用一个字符串分割......不理想,但也许可以控制?

编辑:我结束了使用LINQ和解析逗号分隔的字符串我传递过来,这看起来像它现在可以工作,但我会坚持一个更好的解决方案,并选择在这篇文章上的答案。

我相信你可以使用encodeURIComponent($('select').val())以编码形式传输多种选择列表:

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

当你有多个<option> S中返回的所有阵列的多选元素上调用.val()值:http://api.jquery.com/val

这里是一个演示:http://jsfiddle.net/jasper/9He6s/

+0

我认为我们有一个沟通打破,只有一个从里不断所选项目st,但是选中的项目是一个包含多个字段的对象。 – BigOmega 2012-03-02 19:40:24

+0

@Ryan你可以发布从服务器端代码获取输出的HTML吗?我不知道你发布的代码会呈现为... – Jasper 2012-03-02 19:53:27