Как я могу jQuery POST несколько параметров из одного объекта, выбранного из HTML.DropDownList? - PullRequest
1 голос
/ 02 марта 2012

Я использую

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

для отображения списка выбора.В моем jQuery я размещаю выбранное значение (ItemID).Однако мне нужно опубликовать больше значений, чем в выбранном объекте Item.Кажется, что я могу выбрать только одно из значений, которые будут использоваться в качестве значения данных для выбора.Есть ли способ, которым я могу извлечь больше значений из выбранного объекта для подключения к моему 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"))

Но тогда мне пришлось бы разобрать ихв контроллере, использующем разделение строк ... не идеально, но, возможно, возможно?

edit: я закончил тем, что использовал linq и проанализировал строку с разделителями-запятыми, которую я передал, похоже, сейчас это будет работать, ноЯ постараюсь найти лучшее решение и выбрать ответ на этот пост.

1 Ответ

0 голосов
/ 02 марта 2012

Я считаю, что вы можете использовать encodeURIComponent($('select').val()) для кодирования списка множественного выбора для передачи формы:

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

Когда вы вызываете .val() для элемента множественного выбора, для которого выбрано несколько <option> s, он возвращает массив всех значений: http://api.jquery.com/val

Вот демоверсия: http://jsfiddle.net/jasper/9He6s/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...