c# - MVC 3 级联下拉列表

标签 c# javascript asp.net-mvc-3 drop-down-menu cascadingdropdown

我不知道如何使用级联下拉列表

我的场景是下一个:

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

我想要两个 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 的值?应该如何发送?

ANSWER

我从这个网站找到了答案,只是想告诉大家我做了什么

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

最佳答案

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

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

你有 4 个元素:

  1. 初始表单加载(未选择国家/地区)
  2. 选择的国家/地区,居住的州
  3. 选择国家,选择州
  4. 错误处理(无效的国家和州组合)

当我遇到这个问题时,我会在与您的示例类似的 View 中处理第 1 步和第 3 步。

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

对我来说,我将通过创建 javascript Controller 来处理第 2 步,并使用 jquery 发布和返回在选择“国家/地区”下拉框时触发的 json 对象。

我找到了 MVC Music StoreNerd Dinner例子非常有帮助。

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

关于c# - MVC 3 级联下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6688639/

相关文章:

c# - 将 C# COM 服务器事件公开给 Delphi 客户端应用程序

javascript - jQuery 内容分离

javascript - 使用 'vanilla' JS 为选定元素设置 CSS 属性

asp.net-mvc-3 - 编译错误: "higher version than referenced assembly "

asp.net-mvc-3 - 如何在 Windows Azure 上使用 SquishIt

c# - JQuery 中的超链接

c# - 如何为 DetailsView 的插入和取消按钮分配不同的样式?

c# - 使用 jQuery 从下拉列表中删除除第一个以外的所有值

c# - 在 stimulsoft 报告中处理关系时出现错误

javascript - lightSlider - 在轮播中间设置事件元素