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



我有两个表States和Cities

有两个下拉列表,当州下拉列表选中时,选项应该在城市下拉列表中可用,但不知何故,文本和值不会出现

状态视图行李和下拉列表

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

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));
});
});
});

不显示值和文本的意思是,我的桌子上有4个"x"州的城市,在视图中,当我将StateDropDown更改为"x"State时,它只在我的城市下拉列表中显示4个空的<option></option>,没有任何文本和值

伙计们,我真的很感谢你们的帮助。我是个新手,我不知道问题出在哪里,所以请帮忙。

EDIT:我认为从控制器返回的结果返回了一个对象,如:

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

所以你想绑定:

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

Value和Text应为大写。

最新更新