我正在尝试实现我为其创建了以下脚本的级联下拉列表:
$(document).ready(function () {
var district = $("#ddlDistrict");
$('#ddlState').change(function () {
// district.find('option').remove();
var cd = $(this).val();
alert(cd);
var url = '<!--Url.Content("~/")-->' + 'Stranger1/GetDistrict';
$.getJSON("/Stranger1/GetDistrict?state="+cd, { id: cd }, function (data) {
//Clear the Department list
$("#ddlDistrict").empty();
$.each(data,function (index, optionData) {
$("#ddlDistrict").append("<option value=" + optionData.Value + ">" + optionData.Text + "</option>");
});
});
});
});
alert(cd) 给出了正确的值。但是第二个下拉列表没有显示结果,并且 getJSON 方法没有触发 GetDistrict 方法。
我认为的列表是:
@Html.DropDownList("ddlState", (IEnumerable<SelectListItem>)ViewData["StateType"])
@Html.DropDownList("ddlDistrict",new List<SelectListItem>() )
以下是控制器:
public JsonResult GetDistrict(int id)
{
JsonResult result = new JsonResult();
IEnumerable<SelectListItem> district = new SelectList(db.sp_get_district(id, 99).Select(r => new SelectListItem { Value = r.DISTRICT_CD.ToString(), Text = r.DISTRICT }), "value", "text");
result.Data = district.ToList();
result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
return result;
}
我错过了什么吗?