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>");
                    });
                });
            });
        });

アラート (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;   
}

何か不足していますか?

4

1 に答える 1

0

に編集してみる

$.getJSON("/Stranger1/GetDistrict?id="+cd, 関数 (データ)

于 2012-05-04T05:51:36.897 に答える