如何在尚未提交表单时检索下拉列表选择的值

时间:2011-12-19 18:00:05

标签: asp.net-mvc-3 jquery

我有以下代码

@using (Html.BeginForm())
{

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

因此,此组合中的用户选择绑定到模型的SelectedID属性。我的理解是这种绑定只在提交表单时才会发生。让我们说在同一页面上,我需要做一个AJAX调用,但此时)Model.SelectedID没有提供任何值,因为表单尚未提交(尽管用户从下拉列表中选择了一些内容)。任何想法如何最好地处理这种情况?

3 个答案:

答案 0 :(得分:2)

您可以使用javascript。

var selectedValue = $("#IDs").val();

答案 1 :(得分:1)

change事件绑定到您的DD

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

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

//do ajax

});

答案 2 :(得分:1)

正如其他人所指出的,你会在下拉列表的更改中使用javascript获得此值。

但是我想指出,您对下拉列表中使用的重载的理解是不正确的。此overload将显示默认选项框标签。

例如,您可以提示用户从列表中选择一些内容:

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

如果您要按原样在示例中发布表单,则可以在表单中看到所选项目。如果以这种方式设置视图模型,模型绑定器将接管并将此值绑定到“SelectedID”属性。

[HttpPost]
public string DropDown(FormCollection form)
{
    var selectedItem = form["IDs"];
    return selectedItem;
}