我的MVC上的dropdownlistbox可以触发一个事件,以便我可以填充另一个事件吗?

时间:2011-04-15 16:35:06

标签: jquery asp.net-mvc ajax model-view-controller

我的MVC网页上有一个dropdownlistbox。下拉列表允许我选择国家/地区名称。当用户更改国家/地区时,我希望另一个下拉列表中包含该国家/地区的城市。

这可能与MVC有关吗?我不确定我是否应该使用javascript,AJAX,jquery或两者的组合。

非常感谢所有帮助和建议。

3 个答案:

答案 0 :(得分:0)

使用jQuery的ajax功能。当第一个列表更改(.change())时,向MVC JSON操作发送ajax请求。请求返回时,您可以使用它来填充下一个下拉列表。

答案 1 :(得分:0)

$('#myDropDown').live('change', function(){
});

您也可以使用Ajax调用辅助页面,在其中填充并返回一个序列化的jSon。

另一个选项是使用AutoPostBack和OnSelectedIndexChanged(将其用作reference

答案 2 :(得分:0)

<script type="text/javascript >
    //Function for package binding on ddlindustry selected change index
    $("#ID_OF_THAT DDL").change(function () {

        var vv = $("#ID_OF_THAT DDL option:selected").val();
        if (vv >= 0) {

            $.ajax({
                type: "GET",
                url: '<%=Url.Action("ACTION", "CONTROLLER") %>',
                data: {
                    "VARIABLE_TO_PASS": $("#ID_OF_THAT DDL option:selected").val()
                }, //you can call public action from controller
                dataType: "text", //in data enter value which u have 2 pass must same as like control actioresult passing param
                contentType: "application/json",
                success: bindpackage
            })
        }
    });
</script>

<script type="text/javascript">
    function bindpackage(result) {
        eval(result);
    }

之后在你的控制器中:

public ActionResult Function123 (int VARIABLE_TO_PASS){

    RjsResult r = new RjsResult();

    ViewData["Name"] = function to get data;

    r.update("DIV_NAME","Name of the partial to update",ViewData, ControllerContext);

    return r;

}

希望有所帮助:)