下拉不显示值和文本asp.net mvc

问题描述

我有两个表State and Cities

带有两个下拉列表,当状态下拉列表被选中时,选项应该在“城市”下拉列表上可用,但是以某种方式不会显示“文本”和“值”

状态ViewBag和下拉列表

ViewBag.State = new SelectList(db.StateRepository.GetAll(),"StateId","StateTitle");
@Html.DropDownList("States",(SelectList)ViewBag.State,"Please Select",htmlAttributes: new { @class = "form-control",id="State"})

城市下拉

<select class="form-control" id="City">    </select>

Json in Controller

  public ActionResult GetCities(int id)
  {

            var data = db.Cities.Where(d => d.StateId == id).Select(d => new { Text = d.CityTitle,Value = d.CityId });
            return Json(data,JsonRequestBehavior.AllowGet);
  }

脚本

 $("#State").change(function() {
        var loading = $('<option></option>').text("Please Wait");
        $('#City').attr("disabled","disabled").empty().append(loading);

        $.getJSON("/GetCities/" + $("#State > option:selected").attr("value"),function(result) {
                $("#City").removeAttr("disabled").empty().append($("<option></option)").val("").text("Please Select"));
                    $.each(result,function(item) {
                            $("#City").append($("<option></option>").val(item.value).text(item.text));
                        });
                });
  });

通过不显示值和文本,我的意思是说我的桌子上有四个“ x”州的城市, 在视图中,当我将StateDropDown更改为“ x”状态时,它在我的City DropDown列表中仅显示4个空<option></option>,没有任何文本和值

伙计们,我非常感谢您的帮助,我是新手,也不知道问题出在哪里,所以请帮忙。

解决方法

编辑:我认为从控制器返回的结果将返回一个像这样的对象:

[{ "Text": "..","Value": ".." }]

所以您想绑定:

$.each(result,function(item) {
    $("#City").append($("<option></option>").val(item.Value).text(item.Text));
});

“值”和“文本”应大写。