2017-09-09 4 views
0

Ich versuche, Html.DropDownListFor mit der Liste der Zeichenfolgen aus einem ViewBag zu verwenden.asp.net MVC - Verwenden von Liste der Zeichenfolgen in einem DropDownListFor

Im Grunde habe ich eine ViewBag mit einer Liste von String wie „Adam“, „Tom“, „Mike“ etc ...

ich wandern war, ob es möglich ist, diese Liste zu übergeben, um DropDownListFor wo sowohl Wert und Text sind die Elemente aus meiner Liste.

war ich nicht in der Lage hier foreach verwenden ...

Beispiel mit hard:

@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)) 
+0

Das Problem mit 'Liste ' ist, dass Sie nicht immer die Eigenschaften der einzelnen (Object) Punkt 'value' und' Text' verweisen können. Ordnen Sie diese einer Liste von 'SelectListItem' zu. – Jasen

+0

Haben Sie versucht, diese Liste von Zeichenfolgen an die [erste Überladung] (https://msdn.microsoft.com/en-us/library/system.web.mvc.selectlist.selectlist (v = vs.118) .aspx) zu übergeben # Anker_2)? – GSerg

Antwort

1

Sie eine Sammlung von SelectListItem s aus der Liste, die von Strings und der Verwendung mit DropDownListFor Helfern erzeugen kann Methode.

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

und in der Ansicht

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