asp.net MVC - 使用DropDownListFor中的字符串列表

时间:2017-09-09 18:43:39

标签: asp.net-mvc razor

我正在尝试将Html.DropDownListFor与ViewBag中的字符串列表一起使用。

基本上我有一个带有“Adam”,“Tom”,“Mike”等字符串列表的ViewBag ......

如果有可能将此列表传递给DropDownListFor,我会徘徊,其中Value和text都是我列表中的项目。

我无法在这里使用foreach ......

硬编码示例:

@Html.DropDownListFor(model => model.Name, new SelectList(
          new List<Object>{

               new { value = "Adam" , text = "Adam"  },
               new { value = "Tom" , text = "Tom"  },
               new { value = "Mike" , text = "Mike"  },
               new { value = "Jake" , text = "Jake"  },
            },
          "value",
          "text",
           2))

1 个答案:

答案 0 :(得分:1)

您可以从字符串列表中生成SelectListItem的集合,并将其与DropDownListFor辅助方法一起使用。

var names = new List<string> {"Adam", "Sam"};
ViewBag.Names = names.Select(f => new SelectListItem() {Value = f, Text = f});

并在视图中

@Html.DropDownListFor(f=>f.Name, ViewBag.Names as IEnumerable<SelectListItem>, 
                                                                    "select one")