如何从一个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].ItemID
,Model.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
我认为我们有一个沟通打破,只有一个从里不断所选项目st,但是选中的项目是一个包含多个字段的对象。 – BigOmega 2012-03-02 19:40:24
@Ryan你可以发布从服务器端代码获取输出的HTML吗?我不知道你发布的代码会呈现为... – Jasper 2012-03-02 19:53:27