[asp.net]为 mvc 下拉列表的值填充

发布时间: 2016/11/7 0:16:25
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.
 @Html.DropDownListFor(x => x.Pets, new SelectList(ViewBag.Pets, "key", "value"), new { @class = "type1 newdrop" })

我是新手在 mvc 开发。使用上面的代码行,得到该下拉列表中,但只与 2 作为值。

如何可以填充下拉列表中的所有值低于 2 ,包括 0 ?我想要选定的项要2

 ViewBag.Pets = Constants.MaxP.Where( x => x.Key == someId); // the someId is for sure one of the below key numbers

在哪里

  public static Dictionary<int, int>   MaxP = new Dictionary<int, int>(){
                {12, 2}, {13, 2}, {14, 2}, {15, 2}, {16, 2}, {17, 2}, {18, 2}
            };

解决方法 1:

把你的字典的集合变成 SelectListItem 像这样︰

int a = Constants.Maxp.FirstOrDefualt(x => x.Key == SomeID).Value;

List<SelectListItem> lst = new List<SelectListItem>();

for (int i = 0; i < a; i++)
{
    lst.Add(new SelectListItem(){
        Text = i.ToString(),
        Value = i.ToString()
    });
}

ViewBag.Pets = lst;

然后在您的视图︰

@Html.DropDownListFor(x => x.Pets, ViewBag.Pets, new { @class = "type1 newdrop" })

其中 x.pets 是匹配的 IDKey

赞助商