如果不在集合中,则添加到选择列表

时间:2013-03-21 22:46:41

标签: asp.net-mvc drop-down-menu conditional selectlist

我正在使用html助手进行下拉框,如果某个对象不在我的模型中的另一个ICollection属性中,我想填充一个选择列表。

基本上它是一个与团队合作的应用程序,我希望能够检查一个玩家是否被选中开始对抗一个团队,如果他/她在起始团队列表中,那么他们就不会选择下拉列表在picksSubs视图中列出。

为此查询的开放性而道歉。请提供您可能提出的任何建议!

非常感谢,

Ĵ

1 个答案:

答案 0 :(得分:0)

有些事情:

public class MyViewModel
{
    public int Selected { get; set; }

    public List<Person> All { get; set; }
    public List<Person> Exclude { get; set; }

    // Create selectlist of items which are not in exclude list
    public SelectList GetSelectList
    {
        get
        {
            var r = All.Where(q => !Exclude.Any(p => p.ID == q.ID)).OrderBy(p => p.Name).ToList();
            return new SelectList(r, "ID", "Name", Selected);
        }
    }

    public MyViewModel()
    {
        All = new List<Person>();
        Exclude = new List<Person>();
    }
}

在视图中:

@Html.DropDownListFor(model => model.Selected,Model.GetSelectList)