【发布时间】:2014-05-05 21:30:46
【问题描述】:
我是 MVC 的新手,我正在尝试让我的下拉列表根据用户之前从列表中选择的值动态更改。更改只是基于所选值的列表过滤器。我觉得应该有一种方法可以根据选择的下拉列表过滤我的列表,我只是不知道该怎么做。看来我应该能够在视图上编写一个 js 函数来执行以下操作:
function
{
selectedItem()
if x == "ListItemValue"
var CatListItems = new List<SelectListItem>();
CatListItems.Add(new SelectListItem { Text = String.Empty, Value = String.Empty });
foreach (var ZCategory in ViewBag.ZCategory)
if CaTlistItems.CategoryForeignKeyID = 3
{
CatListItems.Add(new SelectListItem { Text = ZCategory, Value = ZCategory });
}
}
到目前为止,这是我的代码:
型号
public class ArmyRace
{
[Key]
public int RaceID { get; set; }
public string Race { get; set; }
public virtual ItemCategory ItemCategory { get; set; }
}
public class ItemCategory
{
[Key]
public int CategoryID { get; set; }
public string ArmyCategory { get; set; }
}
控制器:
List<string> Category = new List<string>(2);
var ICategory = from i in db.ItemCategory
select i;
foreach (var x in ICategory)
{
Category.Add(x.ArmyCategory);
}
ViewBag.ZCategory = Category;
查看
var CatListItems = new List<SelectListItem>();
CatListItems.Add(new SelectListItem { Text = String.Empty, Value = String.Empty });
foreach (var ZCategory in ViewBag.ZCategory)
{
CatListItems.Add(new SelectListItem { Text = ZCategory, Value = ZCategory });
}
【问题讨论】:
-
google "jquery 层叠下拉菜单"。有几个例子
-
有没有办法从已经添加到页面的selectlistitem中做到这一点?再说一次,我真的很新,但我觉得信息应该已经存在,因此应该有一些方法可以把它弄出来。
-
jquery 是在视图上操作数据的方式。我通常会进行 ajax 调用以从控制器中获取结果。如果你想从视图中拉出,你可以用 jquery 遍历模型并拉出结果集。
-
谢谢马特,我会试一试的。我要避免的是每次向数据库添加新类别时都必须更新代码。我会到处玩,看看视图是什么。
标签: asp.net-mvc-4