我不知道如何使用级联下拉列表
我的场景是下一个:
类别有项目,项目有数量取决于机构
我想要两个 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 个元素:
- 初始表单加载(未选择国家/地区)
- 选择的国家/地区,居住的州
- 选择国家,选择州
- 错误处理(无效的国家和州组合)
当我遇到这个问题时,我会在与您的示例类似的 View 中处理第 1 步和第 3 步。
那么你是否卡在了第 2 步?当你说“我应该如何放置 URL 或我应该如何发送它”时,你是什么意思
对我来说,我将通过创建 javascript Controller 来处理第 2 步,并使用 jquery 发布和返回在选择“国家/地区”下拉框时触发的 json 对象。
我找到了 MVC Music Store和 Nerd Dinner例子非常有帮助。
如果您需要 json/jquery 的示例,请参阅音乐商店示例中的购物车。
关于c# - MVC 3 级联下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6688639/