3

我不知道如何准确有层叠DropDownListsMVC 3层叠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

我该如何接收每个DropDownList的值在ActionResult中?他们应该如何发送?

ANSWER

我发现从这个网站的答案,只是想让知道我做了什么

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

+0

小心分享一些代码?你可以通过jQuery-Ajax来做到这一点。 –

+0

那么事情是,我不知道从哪里开始......我有两个DropDownLists ..哪一个取决于另一个......我可以通过将它们放置在代码隐藏的ViewData上来获取值,但是在在ActionResult中的代码隐藏我不知道如何检索两个DropDownLists的ID ... – sergioadh

+0

所以你_do_有一些代码。张贴在这里,以便我们可以看到是什么导致你的麻烦。 –

回答

2

你现在的样子描述你的问题的声音就像你试图一次做太多事情一样。

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

您有4个要素:

  1. 初始形态负载(任何国家,任何状态下选择)
  2. 国家选择,国家人口
  3. 国家选择国家选择
  4. 错误处理(无效的国家&状态组合)

当我遇到这个问题时,我会在类似于您的示例的视图中处理步骤1 & 3。

那么你在步骤2卡住了吗?你是什​​么意思时,你说:“我应该如何把URL或我应该怎么把它,”

对于我来说,我将通过创建JavaScript的控制器和使用jQuery解决第2步后&返回JSON对象触发时国家下拉框被选中。

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

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

+0

是的。如果我找到解决方案 – sergioadh

+0

我还没有找到MVC音乐商店的解决方案,他们显示多个DropDownLists,但他们不是我如何正如你所提到的那样需要他们。你能告诉我你将如何解决第二步,然后第三步使用jQuery以及ActionResult如何接收值? – sergioadh

+0

我在这里找到了答案http://kmsystems.squarespace.com/journal/2009/5/31/aspnet-mvc-cascading-dropdownlists.html但你是对的..我不得不使用JSON/jQuery – sergioadh