问题描述
我有两个表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));
});
“值”和“文本”应大写。