1

我正在尝试实现我为其创建了以下脚本的级联下拉列表:

$(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;   
}

我错过了什么吗?

4

1 回答 1

0

尝试编辑到

$.getJSON("/Stranger1/GetDistrict?id="+cd, 函数(数据)

于 2012-05-04T05:51:36.897 回答