次のスクリプトを作成したカスケード ドロップダウン リストを実装しようとしています。
$(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>");
});
});
});
});
アラート (cd) は正しい値を示しています。しかし、2 番目のドロップダウン リストには結果が表示されず、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;
}
何か不足していますか?