如何在MVC中使用级联下拉列表

如何在MVC中使用级联下拉列表

本文介绍了如何在MVC中使用级联下拉列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

am使用asp.net mvc3,我有2个表,我想根据另一个要执行的下拉列表从下拉列表中获取数据.例如,如果我选择国家/地区,则必须显示属于该国家/地区的州,控制器中的以下代码.

am using asp.net mvc3, i have 2 tables in that i want to get data from dropdown based on this another dropdown has to perform.for example if i select country it has to show states belonging to that country,am using the following code in the controller.

ViewBag.country= new SelectList(db.country, "ID", "Name", "--Select--");
 ViewBag.state= new SelectList("", "stateID", "Name");

   @Html.DropDownListFor(model => model.Country, (IEnumerable<SelectListItem>)ViewBag.country, "-Select-")

   @Html.DropDownListFor(model => model.state, (IEnumerable<SelectListItem>)ViewBag.state, "-Select-")

但是使用此功能只能获取国家/地区.

but by using this am able to get only the countries.

推荐答案

尝试一下,

<script type="text/javascript">
    $(document).ready(function () {
        $("#Country").change(function () {

            var Id = $("#Country").val();
            $.ajax({
                url: '@Url.Action("GetCustomerNameWithId", "Test")',
                type: "Post",
                data: { Country: Id },
                success: function (listItems) {
                    var STSelectBox = jQuery('#state');
                    STSelectBox.empty();
                    if (listItems.length > 0) {
                        for (var i = 0; i < listItems.length; i++) {
                            if (i == 0) {
                                STSelectBox.append('<option value="' + i + '">--Select--</option>');
                            }
                            STSelectBox.append('<option value="' + listItems[i].Value + '">' + listItems[i].Text + '</option>');

                        }

                    }
                    else {
                        for (var i = 0; i < listItems.length; i++) {
                            STSelectBox.append('<option value="' + listItems[i].Value + '">' + listItems[i].Text + '</option>');

                        }
                    }
                }


            });

        });
});
</script>

查看

@Html.DropDownList("Country", (SelectList)ViewBag.country, "--Select--")
    @Html.DropDownList("state", new SelectList(Enumerable.Empty<SelectListItem>(), "Value", "Text"), "-- Select --")

控制器

  public JsonResult GetCustomerNameWithId(string Country)
        {
            int _Country = 0;
            int.TryParse(Country, out _Country);
            var listItems = GetCustomerNameId(_Country).Select(s => new SelectListItem { Value = s.CountryID.ToString(), Text = s.CountryName }).ToList<SelectListItem>();
            return Json(listItems, JsonRequestBehavior.AllowGet);
        }

这篇关于如何在MVC中使用级联下拉列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-11 03:17