0

ビューに 2 つの DropDownList を設定しました。

 <tr>
        <td class="info_label">City</td>
        <td>@Html.DropDownListFor(m=>m.User.City,Model.City,"-- Chọn thành phố --",new { @class = "dropdown" })</td>
    </tr>
     <tr>
        <td class="info_label">Ward</td>
        <td>@Html.DropDownListFor(m => m.User.Ward, Model.Ward, "-- Chọn quận --" ,new { @class = "dropdown" })</td>
    </tr>

最初の ddl の値を変更すると、最初の値に応じて 2 番目の ddl も変更されます。そして、それを達成するためのjqueryスクリプトがあります。これが私のjqueryコードです:

    function LocationValue() {
    $("#User_City").change(function () {
        var cityName = $("#User_City").val();
        if (cityName == null) {
            $("Ward").prop("disabled", true);
        }
        else {
            $("Ward").prop("disabled", false);
            getWards(cityName);
        }
    });
}
function getWards(cityName) {
    $.ajax({
        url: "/Checkout/Wards",
        data: { CityName: cityName },
        dataType: "json",
        type: "POST",
        error: function () {
            return;
        },
        success: function (data) {
            var items = "";
            $.each(data, function (i, item) {
                items += "<option value=\"" + item.Value + "\">" + item.Text + "</option>";
            });
            $("#User_Ward").html(items);
        }
    });
}

および私のコントローラーの Post メソッド:

 [HttpPost]
    public ActionResult Cities()
    {
        var cities = ILocaRepo.Cities;
        return Json(new SelectList(cities,"CityID","CityName"));
    }
    [HttpPost]
    public ActionResult Wards(string CityName)
    {
        var wards = ILocaRepo.ListWardByCityName(CityName);
        return Json(new SelectList(wards, "WardID", "WardName"));
    }

何らかの理由で、2 ddl のソースには がありますがValue = x.CityName.ToString()、CityID(int) はありません。firebud で、2 番目の ddl の応答が常に[]. 私のエラーの疑いはありますか?

4

1 に答える 1

1

firebud で、2 番目の ddl の応答が常に [] である理由

おそらく、ListWardByCityName呼び出しているメソッドが空のリストを返すためです。これは、このメソッドが都市名で対応するエントリを見つけられない場合に発生する可能性があります。このメソッドをデバッグして、これが発生する理由を確認してください。

余談ですが、セレクターを使用しているようです$('#User_City')が、ドロップダウンにはそのようなIDがありません。適切な ID が割り当てられていることを確認してください。

@Html.DropDownListFor(
    m => m.User.City,Model.City,
    "-- Chọn thành phố --",
    new { @class = "dropdown", id = "User_City" }
)
于 2013-08-06T15:53:37.653 に答える