如何在其他下拉列表中选择ASP .NET MVC填充下拉列表

时间:2018-12-11 14:42:51

标签: c# asp.net asp.net-mvc combobox

(对不起,但是我已经搜索了相关问题,但是我只找到了这个,没有答案: 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和客户端名称。

希望您能理解,谢谢。

1 个答案:

答案 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>');
    });
}