使用DB表项填充下拉列表

时间:2012-07-13 16:41:09

标签: asp.net-mvc-3 entity-framework razor drop-down-menu

我有一张约3件物品的桌子。我希望使用该表填充Dropdown List。但我有一个条件,我想在下拉列表中只显示2项。怎么办呢?

1 个答案:

答案 0 :(得分:0)

您可以使用视图模型:

public class MyViewModel
{
    public string SelectedItemId { get; set; }
    public IEnumerable<SelectListItem> Items { get; set; }
}

然后选择前两项(显然,如果您的要求是根据某些条件采取其他一些条款,您可以使用.Where()扩展方法进行链接,以便在调用.Take()之前先过滤):

public ActionResult Index()
{
    var model = new MyViewModel();
    model.Items = db.Items.Take(2).ToList().Select(x => new SelectListItem
    {
        Value = x.Id,
        Text = x.SomeText
    });
    return View(model);
}

视图是标准的东西,只需调用DropDownListFor帮助器:

@model MyViewModel
@Html.DropDownListFor(x => x.SelectedItemId, Model.Items)