如何仅使用设置为“可用”的项目加载Viewbag?

时间:2013-12-17 22:10:56

标签: asp.net-mvc

我的程序包含以下模型:

public class PlayToy {
    public int PlayToyID {get;set;}
    public string Name {get;set;}
    public bool Available {get;set;}
}    

在我的控制器中我有:

Viewbag.PlayToyID = new SelectList(db.PlayToys, "PlayToyID", "Name");

这是视图

<div class="editor-label">
    @Html.LabelFor(model => model.PlayToy
</div>

<div class="editor-field">
    @Html.DropDownList("PlayToyID", "Choose a Toy")
    @Html.ValidationMessageFor(model => model.PlayToyID)
</div>

这适用于显示列表中所有玩具的下拉列表,但我想 仅显示“可用&#39;的项目”。玩。

我是MVC的新手,所以我不知道AJAX或任何其他Scripting语言要集成到MVC中。所以我想知道如何使用MVC这样做,并且过滤列表的代码会进入控制器还是视图?

1 个答案:

答案 0 :(得分:0)

使用LINQ使用Where()运算符

过滤列表
Viewbag.PlayToyID = newSelectList(db.PlayToys.Where(x=>x.Available).ToList(), "PlayToyID", "Name");

我建议您阅读LINQ以及如何将其应用于列表并在Entity Framework等内容中使用。它是.NET工具包中用于过滤,排序,分组,排序等的极其强大的工具。