(对不起,但是我已经搜索了相关问题,但是我只找到了这个,没有答案: Drop-down list not populating other controls)
好的,所以我被困在这里,首先,我是后端.net开发人员,但是我在需要帮助的情况下, 好的,问题是: 我不知道如何填充第二个组合框,具体取决于第一个组合框, 例如,有客户和联系人,每个客户都有自己的联系人,因此根据您选择的客户,我们需要显示其联系人: 这该怎么做?在wpf平台上,我们只是有一个on item selection更改事件,类似的事情,并且在更改时我们更新了第二个组合框,但是我不知道如何在asp.net mvc中执行此操作,我将第一个组合框像这样:
<div class="form-group">
@Html.LabelFor(model => model.ClientID, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("ClientID", TempClass.GetClients, "Select Client")
</div>
</div>
TempClass.GetClients返回的位置
IEnumerable<SelectListItem>
,其值为:ID和客户端名称。
希望您能理解,谢谢。
答案 0 :(得分:1)
基本上,您需要执行以下步骤:
使用Jquery在下拉列表http://api.jquery.com/change/中捕获更改事件
$("#Dropdown1").on("change", function(){
var selectedValue = $(this).val();
AjaxCall(selected);
})
然后,使用Ajax调用控制器上的操作,该操作将填充第二个下拉菜单的值。
function AjaxCall(value){
$.ajax({
type: "GET",
url : 'UrlToAction',
data: { value: value },
success: function(data) {
PopulateValueForSecondDropdown(data);
}
});
}
从Ajax接收数据后,在成功方法中,使用jquery填充第二个下拉列表的值
function PopulateValueForSecondDropdown(data) {
$('#DROPDOWN2').empty();
data.forEach(function(item){
$('#DROPDOWN2').append('<option value="' + item.KEY+ '">' + item.VALUE + '</option>');
});
}