MVC过滤器下拉列表基于用户响应

时间:2014-05-05 21:30:47

标签: asp.net-mvc-4

我是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 });
}

1 个答案:

答案 0 :(得分:0)

我最终为此做的是创建4个单独的列表。一个包含下拉列表中的所有内容,另一个包含我想要的过滤器。然后我使用简单的$ jquery.hide()并显示函数来显示或隐藏我想要的那些。最后,我不得不使用$ jquery.attr()函数为非活动列表更改ID,因此POST方法会将正确的项添加到数据库中。

我相信这不是理想的方式,如果我能以某种方式将我的列表带到某种类型的标识符上,那么我可以在理想的视图上解析它们但我没有看到做法此