首页 > 解决方案 > asp.net 级联下拉列表

问题描述

我有以下模型:

卡车类型

型号代码

现在我想创建一个页面,其中有两个下拉菜单,一个用于 TruckType,一个用于 ModelCode,以便我可以显示与选择相对应的卡车。

我可以填写第一个,但是一旦您在第一个下拉列表中选择了一个值,我该如何填写第二个下拉列表?

标签: c#asp.netrazor

解决方案


显然,考虑dropdownlist1将结果过滤dropdownlist2并适应您的数据库模式和上下文的那个。

$("#dropdownlist1_ID").change(function() {    
    $.ajax({
        type: 'POST',
        url: 'GetValuesForDropdownlist2',
        dataType: 'json',
        data: { id: $("#dropdownlist1_ID").val() },
        success: function (data) {
            $.each(data, function (i, item) {
                $("#dropdownlist2_ID").append('<option value="' + item.Value + '">' + item.Text + '</option>');
            });
        },
        error: function (ex) {
            console.log('Failed to retrieve data. Exception: ' + ex);
        }
    });
});

在控制器中类似于:

public JsonResult GetValuesForDropdownlist2(int id)
{
    var selected = db.dropdownlist1_Table.Where(t => t.Id == id).FirstOrDefault();

    return Json(new SelectList(db.dropdownlist2_Table.Where(t => (t.Column_To_Filter == selected.Id)), "Column_ID", "Column_Description"));
}

推荐阅读