MVC 3级联下拉列表

本文关键字:下拉列表 级联 MVC | 更新日期: 2023-09-27 18:01:57

我不知道如何确切地拥有级联下拉列表

我的场景是下一个:

类别有项目,项目有数量取决于建立

我想要有两个下拉列表,一个是你选择一个类别,下一个是填充当你选择第一个项目在该类别,当你选择项目的数量表显示每个机构。

这就是我的ActionResult

public ActionResult ItemByClinic(Guid? Item_ID, Guid? Category_ID)
    {
        ViewData["Categories"] = InventoryDb.Categories;
        if (Category_ID != null)
        {
            ViewBag.Category_ID = Category_ID;
            ViewData["Items"] = InventoryDb.Items.Where(i => i.Category.ID == Category_ID);
            if (Item_ID != null)
            {
                ViewBag.Item_ID = Item_ID;
                ViewData["Inventory"] = InventoryDb.Items.Single(i => i.ID == Item_ID).Inventory;
            }
        }
        return View();
    }

然后,我会有我的两个下拉列表,应该张贴值Item_ID和Category_ID…先分类后项目

@Html.DropDownList("Categories", new SelectList((IQueryable<Inventario_Data.Models.Category>)ViewData["Categories"], "ID", "Name", ViewBag.Category_ID), "Select an Item Category", new { onchange = "window.location.href = '/Inventory/ItemByClinic/Categody_ID=' + this.value" })

这就是我不知道如何做的…我应该怎么放URL或者我应该怎么发送它,这样当我发送另一个ID时不会混淆,我可以收到我的ID

我如何在ActionResult中接收每个下拉列表的值?它们应该如何发送?

答案

我从这个网站上找到了答案,只是想让大家知道我做了什么

http://kmsystems.squarespace.com/journal/2009/5/31/aspnet-mvc-cascading-dropdownlists.html

MVC 3级联下拉列表

你描述问题的方式听起来像是你想同时做太多事情。

为了更容易解释,我将使用国家/州查找用例。(当我选择"国家"时,"州"下拉框被填充。)

你有4个元素:

  1. 初始表单加载(未选择国家或州)
  2. 选择的国家,居住的州
  3. 选定国家,选定州
  4. 错误处理(无效国家&状态组合)

当我遇到这种情况时,我处理步骤1 &

所以你在第二步上卡住了吗?当你说"我应该如何放置URL或者我应该如何发送它"时,你是什么意思?

对于我来说,我将通过创建javascript控制器并使用jquery来发布&返回当Country下拉框被选中时触发的json对象。

我发现MVC音乐商店和书呆子晚餐的例子是非常有用的。

如果你需要一个json/jquery的示例,请参阅音乐商店示例中的购物车。