首页 文章

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

提问于
浏览
-1

(对不起,但我搜索了相关的问题,但我只发现了这个没有答案: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 回答

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

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

相关问题