我有两个表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应为大写。