3

我不知道如何准确地拥有 Cascading DropDownLists

我的场景是下一个:

类别有项目,项目有数量取决于机构

我想要两个 DropDownLists 一个,您选择一个类别,当您使用该类别中的项目选择第一个时填充下一个,当您选择项目时,将显示一个包含每个机构数量的表格。

好的,这将是我的 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();
    }

然后,我将有我的两个 DropDownLists 应该将值发布到 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 中每个 DropDownList 的值?应该如何发送?

回答

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

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

4

1 回答 1

2

你描述问题的方式听起来像是你试图一次做太多事情。

为了更容易解释,我将使用 Country / State 查找用例。(当我选择“国家”时,会填充“州”下拉菜单。)

你有4个元素:

  1. 初始表单加载(未选择国家,未选择州)
  2. 选定的国家,人口稠密的州
  3. 选择国家,选择国家
  4. 错误处理(无效的国家和州组合)

当我遇到这种情况时,我会以类似于您的示例的视图处理步骤 1 和 3。

那么,您是否卡在第 2 步?当你说“我应该如何放置 URL 或者我应该如何发送它”时,你是什么意思?

对我来说,我将通过创建 javascript 控制器并使用 jquery 发布和返回在选择 Country 下拉框时触发的 json 对象来解决第 2 步。

我发现MVC Music StoreNerd Dinner示例非常有帮助。

如果您需要 json / jquery 的示例,请参阅 The Music Store 示例中的购物车。

于 2011-07-14T05:24:53.887 回答