【问题标题】:MVC Filter Drop Down List Based on user response基于用户响应的 MVC 过滤器下拉列表
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-04-23
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-12
    • 2018-10-04
    • 1970-01-01
    • 2019-09-12
    相关资源
    最近更新 更多