Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC 3级联下拉列表_C#_Javascript_Asp.net Mvc 3_Drop Down Menu_Cascadingdropdown - Fatal编程技术网

C# MVC 3级联下拉列表

C# MVC 3级联下拉列表,c#,javascript,asp.net-mvc-3,drop-down-menu,cascadingdropdown,C#,Javascript,Asp.net Mvc 3,Drop Down Menu,Cascadingdropdown,我不知道如何准确地拥有级联下拉列表 我的设想是: 类别有项目,项目有数量取决于机构 我想有两个下拉列表,一个是你选择一个类别,下一个是填充当你选择第一个与该类别中的项目,当你选择该项目与每个机构的数量表显示 好的,这就是我的行动结果 public ActionResult ItemByClinic(Guid? Item_ID, Guid? Category_ID) { ViewData["Categories"] = InventoryDb.Categories;

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

我的设想是:

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

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

好的,这就是我的行动结果

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" })
@Html.DropDownList(“Categories”,新选择列表((IQueryable)ViewData[“Categories”],“ID”,“Name”,ViewBag.categority\u ID),“选择项目类别”,新{onchange=“window.location.href=”/Inventory/ItemByClinic/Categody\u ID=”+此.value“)
这就是我不知道该怎么做的。。。我应该如何放置URL或如何发送它,这样当我发送其他ID时不会混淆,我可以接收我的ID

如何接收ActionResult中每个DropDownList的值?如何发送

答复

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


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

为了便于解释,我将使用国家/州查找用例。(当我选择“国家”时,“国家”下拉列表将被填充。)

您有4个元素:

  • 初始表单加载(无国家/地区,未选择状态)
  • 选定国家/地区,由州/地区填充
  • 选定国家/地区,选定州
  • 错误处理(无效的国家/地区和州组合)
  • 当我遇到这个问题时,我会在类似于您的示例的视图中处理步骤1和3

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

    对于我来说,我将通过创建javascript控制器来解决第2步,并使用jquery发布并返回在选中国家/地区下拉框时触发的json对象

    我发现这些例子非常有帮助


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

    想分享一些代码吗?顺便说一句,你可以通过jQueryAjax来实现这一点。问题是我不知道从哪里开始。。。我有两个下拉列表。。哪一个取决于另一个。。我可以通过将它们放在代码隐藏的ViewData上获得值,但是在ActionResult的代码隐藏中,我不知道如何检索两个DropDownList的ID…所以您确实有一些代码。把它贴在这里,这样我们就可以看到是什么给你带来了麻烦。就是这样,我会阅读音乐商店的PDF谢谢,如果我找到了解决方案,我会在这里发帖。我还没有在MVC音乐商店找到解决方案,它们显示了多个下拉列表,但它们不是我所需要的,正如你提到的。您能告诉我如何使用jQuery处理第二步、第三步以及ActionResult如何接收值吗?我在这里找到了答案,但您是对的。。我不得不使用JSON/jQuery