我有以下代码
@using (Html.BeginForm())
{
@Html.DropDownListFor(m => m.IDs, new SelectList(Model. IDs), Model.SelectedID)
}
因此,此组合中的用户选择绑定到模型的SelectedID
属性。我的理解是这种绑定只在提交表单时才会发生。让我们说在同一页面上,我需要做一个AJAX调用,但此时)Model.SelectedID
没有提供任何值,因为表单尚未提交(尽管用户从下拉列表中选择了一些内容)。任何想法如何最好地处理这种情况?
答案 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;
}