使用基于另一个下拉列表的 MVC2 填充下拉列表(级联 DropDownList) [英] Populating Dropdownlist Using MVC2 Based On Another Dropdownlist (Cascading DropDownList)

查看:25
本文介绍了使用基于另一个下拉列表的 MVC2 填充下拉列表(级联 DropDownList)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在制作一个处理车辆的应用程序.我需要两个 DropDownList:

I am making an application that deals with vehicles. I need two DropDownLists:

  • 制造:所有车辆制造
  • Models:属于所选的模型Make DropDownList 的值

MVC2 中是如何做到的?

我的想法:我是否在选择第一个列表时使用 ajax 调用,然后拉回模型以绑定到模型 DDL?模型绑定如何以这种方式发挥作用?

My Idea: Do I use an ajax call when my first list is selected and then pull back the Models to bind to the Model DDL? How would model binding come into play that way?

更新 我发布了我最终做的作为答案.它超级简单并且效果很好.

UPDATE I posted what I ended up doing as an answer. It is super simple and works great.

如果你愿意,你也可以使用 get,但你必须指定你想要这样...... return Json(citiesList, JsonRequestBehavior.AllowGet);

You can use a get too if you feel so inclined, but you have to specify that you want to like so... return Json(citiesList, JsonRequestBehavior.AllowGet);

推荐答案

这就是我最终要做的……不需要额外的插件/1000 行代码……

This is what I ended up doing... Didn't need additional plugins / 1000 Lines of code...

//The first DDL is being fed from a List in my ViewModel, You can change this...
<%: Html.DropDownList("MakeList", new SelectList(Model.Makes, "ID", "Name")) %>
<select id="ModelID" name="ModelID" disabled="disabled"></select>

JQuery

    $(document).ready(function () {
        $('#MakeList').change(function () {
            $.ajaxSetup({ cache: false });
            var selectedItem = $(this).val();
            if (selectedItem == "" || selectedItem == 0) {
                //Do nothing or hide...?
            } else {
                $.post('<%: ResolveUrl("~/Sell/GetModelsByMake/")%>' + $("#MakeList > option:selected").attr("value"), function (data) {
                    var items = "";
                    $.each(data, function (i, data) {
                        items += "<option value='" + data.ID + "'>" + data.Name + "</option>";
                    });
                    $("#ModelID").html(items);
                    $("#ModelID").removeAttr('disabled');
                });
            }
        });
    });

行动

    [HttpPost]
    public ActionResult GetModelsByMake(int id)
    {
        Models.TheDataContext db = new Models.TheDataContext();
        List<Models.Model> models = db.Models.Where(p=>p.MakeID == id).ToList();

        return Json(models);
    }

这篇关于使用基于另一个下拉列表的 MVC2 填充下拉列表(级联 DropDownList)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆