2013-08-06 9 views
7

Sto provando a capire C# ASP.NET MVC4 e continuo a trovare SelectList. Io non riesco a trovare una spiegazione di quello che è, altro che questo:Qual è la classe SelectList in C#?

http://msdn.microsoft.com/en-us/library/system.web.mvc.selectlist%28v=vs.108%29.aspx

Qualcuno può dare una semplice spiegazione di esso, e mostrare come si usa?

+0

http://www.aspnetmvcninja.com/views/asp-net-mvc-select-list-example – Satpal

+0

http://www.asp.net/mvc/tutorials/javascript/working- with-the-dropdownlist-box-and-jquery/using-the-dropdownlist-helper-with-aspnet-mvc –

+1

Fare riferimento a http://stackoverflow.com/questions/781987/how-can-i-get-this- asp-net-mvc-selectlist-to-work per alcuni esempi. – Phil

risposta

7

C'è un semplice codice che ho usato per dropdownlist in asp.net mvc:

In Controller:

List<SelectListItem> dropdownItems = new List<SelectListItem>(); 
    dropdownItems.AddRange(new[]{ 
          new SelectListItem() { Text = "Option One", Value = "1" }, 
          new SelectListItem() { Text = "Option Two", Value = "2" }, 
          new SelectListItem() { Text = "Option Three", Value = "3" }}); 
    ViewData.Add("DropDownItems", dropdownItems); 

E, in vista cshtml:

@Html.DropDownList("Types", ViewData["DropDownItems"] as List<SelectListItem>) 
@Html.ValidationMessageFor(model => model.Types) 
+0

Grazie, vuoi dire che dropdownItems è molto simile a un oggetto di tipo SelectList? Inoltre, la maggior parte delle risposte e dei commenti in realtà non menziona la classe selectList - questo significa che non viene usato molto e normalmente userò solo un elenco di selectListItem? – spiderplant0

+0

Sì, 'SelectListItem' è un tipo di' System.Web.Mvc.SelectList'. – Mojtaba

3

SelectList classe che contiene la chiave, coppia di valori con l'elemento selezionato su Vero.

per esempio,

listItems.Add(new SelectListItem 
       { 
        Text = xElement.Element("text").Value, 
        Value = xElement.Element("value").Value 
       }); 

var selected = listItems.Where(x => x.Value == "Test1").First(); 
selected.Selected = true; 

Questo campione che aiuta a ottenere il valore selezionato in dropdownlist.