2013-08-06 5 views
7

Ich versuche zu verstehen, C# ASP.NET MVC4 und weiter über SelectList. Ich kann nicht eine Erklärung zu finden scheinen, was es ist, andere, dass dies:Was ist die SelectList-Klasse in C#?

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

Kann mir jemand eine einfache Erklärung geben, und zeigen, wie es zu benutzen?

+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-und-jquery/using-the-dropdownlist-helper-with-aspnet-mvc –

+1

Siehe http://stackoverflow.com/questions/781987/how-can-i-get-this- asp-net-mvc-selectlist-to-work für einige Beispiele. – Phil

Antwort

7

Es gibt einen einfachen Code, den ich für Dropdownlist in asp.net MVC verwendet:

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); 

Und in cshtml Ansicht:

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

Danke, meinst du, dass dropdownItems ist sehr ähnlich wie ein Objekt vom Typ SelectList? Außerdem erwähnen die meisten Antworten & Kommentare die selectList-Klasse nicht - bedeutet das, dass sie nicht viel benutzt wird und normalerweise würden Sie einfach eine Liste von selectListItem verwenden? – spiderplant0

+0

Ja, 'SelectListItem' ist ein Typ von' System.Web.Mvc.SelectList'. – Mojtaba

3

Select Klasse, die das Schlüssel, Wert-Paar mit dem ausgewählten Element enthält, auf True.

Zum Beispiel

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; 

Diese Probe, die den ausgewählten Wert in Dropdownlist erhalten hilft.