给Html赋值.通过ViewBag从控制器方法获取下拉列表

本文关键字:控制器 方法 获取 下拉列表 ViewBag Html 赋值 通过 | 更新日期: 2023-09-27 18:07:47

我有一个@Html。我的视图上的下拉列表,其初始值为null。该列表的值必须基于从其他dropDownList中选择的值来填充。我有我的两个下拉列表如下

            <div class="col-sm-7">
                @Html.DropDownList("City", null, new {@id="City", @class="form-control"})
            </div>
            <div class="col-sm-7">
                @Html.DropDownList("Theatre", null, new {@id = "Theatre", @class = "form-control"})               
            </div>

剧院必须根据城市下拉列表中选择的值进行填充。由于剧场不能为空,我最初设置了ViewBag。剧场到一个空列表在我的控制器的动作方法。一旦选定了一个城市,我就会从jQuery中调用一个ajax调用,在控制器中调用另一个方法来设置ViewBag。我回来的名单上有剧院。

但是Theatre下拉菜单的内容仍然是空的。我如何刷新后的下拉菜单的内容ViewBag。剧场价值变了吗?

这是我的jQuery调用控制器方法
$("#City").change(function() {
if ($("#City").val() != 0) {
    var ty = $("#City").val();
    $.ajax({
        url: rootDir + "/AnalysisHistory/SetTheatres",
        data: {city: city },
        type: "POST",
        dataType: "html",
        success: function () {
            $(".form").show();
            $("#loading").hide();
            $("#analysisDetails").slideDown('slow');

    });
} else {
    $(".form").hide();
}

});

给Html赋值.通过ViewBag从控制器方法获取下拉列表

改变城市的下拉列表,下面是我为填充影院下拉列表所做的:•我清空了影院下拉列表的内容•当我以JSON形式接收新列表时,在成功时,我将用新内容重新填充列表。这是我的代码

success: function (datax) {
                var result = "";
                var listObj = $.parseJSON(datax);
                $(listObj).each(function (i, val) {
                    result += '<option value="' + val.Value + '">' + val.Text + '</option>';
                });
                $("#Theatre").html(result);
                $(".form").show();
                $("#loading").hide();
                $("#analysisDetails").slideDown('slow');
            }