2017-02-02 7 views
0

Ich versuche, Elemente in DropDownList ohne Datenbank hinzuzufügen. Aber die Ausgabe zeigt nur "Testing ..."ASP.NET MVC, wie man DropDownList zeigt

Meine Modellklasse.

public class DropDownListData 
{ 
    public DropDownListData() 
    { 
     City = new List<SelectListItem> { }; 
    } 
    public List<SelectListItem> City; 
} 

-Controller

public ActionResult Travel() 
{ 
    DropDownListData ddld = new DropDownListData(); 

    ddld.City = new List<SelectListItem> 
    { 
     new SelectListItem {Value = "Paris" ,Text = "Paris"}, 
     new SelectListItem {Value = "Moscow",Text = "Moscow"}, 
     new SelectListItem {Value = "Yerevan" ,Text = "Yerevan" } 
    }; 
    return View(ddld); 
} 

Ansicht

@model ASP.NET.Test.Models.DropDownListData 

@{ 
    Layout = null; 
} 

Testing... 
@{ 
    Html.DropDownList("series", Model.City, "Choose City"); 
} 

Warum ich Dropdownlist nicht sehen. Was mache ich falsch?

Antwort

2

Verwenden Sie den folgenden Code direkt ausgegeben Ihre Dropdownlist wie erwartet:

@Html.DropDownList("series", Model.City, "Choose City"); 

Ihre aktuelle Nutzung im Allgemeinen als „Codeblock“ funktionieren wird, wie unten am Beispiel demonstriert:

@{ 
    // This code will be executed and can be used to set variables, etc. 
    var answer = 42; 
} 

<!-- This is an example of outputting your value --> 
<p> 
    The answer to the question is <b>@answer</b>. 
</p> 

Ihr aktueller Code würde also einfach die Html.DropDownList() Methode aufrufen, würde sie aber nie wirklich verwenden oder ausgeben. Wenn Sie es jedoch mit dem Zeichen @ vorgeben, wird es als Ausdruck behandelt und entsprechend ausgegeben.

1

Sie haben zu verwenden:

@Html.DropDownList("series", Model.City, "Choose City") 

statt:

@{ 
    Html.DropDownList("series", Model.City, "Choose City"); 
} 

Was Sie gerade die Dropdownlist-Funktion hat nennt, nichts mit dem MvcHtmlString zurück tun. ReSharper gibt mir eine Warnung, dass der Rückgabewert nicht verwendet wird.

Verwandte Themen