2012-03-02 63 views
1

我使用如何從一個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和解析逗號分隔的字符串我傳遞過來,這看起來像它現在可以工作,但我會堅持一個更好的解決方案,並選擇在這篇文章上的答案。

回答

0

我相信你可以使用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

相關問題