如何在其他下拉列表中选择asp .net mvc填充下拉列表

(对不起,但我搜索了相关的问题,但我只发现了这个没有答案:Drop-down list not populating other controls

好吧所以我被困在这里,首先,我是一个严格的后端.net开发人员,但我处于需要帮助的情况,好吧所以问题是:我不知道如何填充第二个组合框,这取决于第一个例如,有客户和联系人,每个客户都有自己的联系人,因此根据您选择的客户,我们需要显示他的联系人:如何做到这一点?在wpf平台上,我们只是有一个关于项目选择更改事件,类似的东西,并在更改后我们更新第二个组合框,但我不知道如何在asp.net mvc中执行此操作,我pouplate第一个组合框像这样:

<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和客户端名称 .

希望你理解,提前谢谢 .

回答(1)

2 years ago

基本上,您需要执行以下步骤:

使用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接收数据后,在success方法中,使用jquery填充第二个下拉列表的值

function PopulateValueForSecondDropdown(data) {
    $('#DROPDOWN2').empty(); 
    data.forEach(function(item){
        $('#DROPDOWN2').append('<option value="' + item.KEY+ '">' + item.VALUE + '</option>');
    });
}