Asp.net mvc 4 基于用户响应的MVC过滤器下拉列表

Asp.net mvc 4 基于用户响应的MVC过滤器下拉列表,asp.net-mvc-4,Asp.net Mvc 4,我是MVC的新手,我正在尝试让我的下拉列表根据用户以前从列表中选择的值进行动态更改。更改只是基于所选值的列表过滤器。我觉得应该有一种方法可以根据选择的下拉列表过滤我的列表,我只是不知道该怎么做。似乎我应该能够在视图上编写一个js函数,它可以执行以下操作: function { selectedItem() if x == "ListItemValue" var CatListItems = new List<SelectListItem>(); CatListItems.

我是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 });
    }
}
控制器:

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;
列表类别=新列表(2);
var ICategory=来自db.itemcegory中的i
选择i;
foreach(ICategory中的var x)
{
类别.增加(x.军备类别);
}
ViewBag.ZCategory=类别;
查看

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 });
}
var CatListItems=new List();
添加(新建SelectListItem{Text=String.Empty,Value=String.Empty});
foreach(ViewBag.ZCategory中的变量ZCategory)
{
添加(新建SelectListItem{Text=ZCategory,Value=ZCategory});
}

我最后为这一个做的是创建4个单独的列表。一个是下拉列表中的所有内容,三个是我想要的过滤器。然后,我使用简单的$jquery.hide()和show函数来显示或隐藏我想要的。最后,我必须使用$jquery.attr()函数更改未激活列表的ID,以便POST方法将正确的项添加到数据库中


我相信这不是一种理想的方式,如果我能以某种方式将我的列表带过来,并带有某种类型的标识符,这样我就可以在理想的视图上解析它们,但我没有看到这样做的方式。

google“jquery级联下拉列表”。这里有几个例子,没有办法从已经添加到页面的selectlistitem执行此操作?我还是个新手,但我觉得信息应该已经存在了,因此应该有一些方法可以将其释放出来。jquery是在视图上操作数据的方法。我通常通过ajax调用从控制器获取结果。如果你想从视图中提取,你可以使用jquery在模型中循环并提取结果集。谢谢Matt,我会尝试一下。我试图避免的是每次向数据库添加新类别时都必须更新代码。我会到处玩,看看这景色怎么样。
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 });
}