как получить значение выпадающего списка, когда форма еще не была отправлена - PullRequest
2 голосов
/ 19 декабря 2011

У меня следующий код

@using (Html.BeginForm())
{

    @Html.DropDownListFor(m => m.IDs, new SelectList(Model. IDs), Model.SelectedID)
}    

Таким образом, выбор пользователя из этого комбо привязывается к SelectedID свойству модели.Насколько я понимаю, эта привязка происходит только при отправке формы.Допустим, с той же страницы мне нужно сделать вызов AJAX, но на этом этапе) Model.SelectedID не предоставляет никакого значения, потому что форма еще не была отправлена ​​(хотя пользователь выбрал что-то из выпадающего списка).Есть идеи, как лучше всего справиться с этой ситуацией?

Ответы [ 3 ]

2 голосов
/ 19 декабря 2011

Вы можете использовать JavaScript.

var selectedValue = $("#IDs").val();
1 голос
/ 19 декабря 2011

Как уже отмечали другие, вы получите это значение с помощью javascript при изменении раскрывающегося списка.

Однако я хотел бы отметить, что ваше понимание перегрузки, которую вы используете для раскрывающегося спискаэто неверно.При этой перегрузке будет отображаться метка поля параметров по умолчанию.

Например, вы можете предложить пользователям выбрать что-то из списка:

@Html.DropDownListFor(m => m.IDs, new SelectList(Model. IDs), "Select Something...")

Если вы хотитеопубликуйте форму в своем примере как есть, вы увидите, как выбранный элемент встречается в форме.Если ваша модель представления настроена таким образом, механизм связывания модели вступит во владение и свяжет это значение с вашим свойством SelectedID.

[HttpPost]
public string DropDown(FormCollection form)
{
    var selectedItem = form["IDs"];
    return selectedItem;
}
1 голос
/ 19 декабря 2011

привязать событие change к вашему DD

$("#DDL_ID").change(function(){

var currVal = $(this).val();

//do ajax

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