2013-11-01 3 views
8

Was ist der beste Weg, um eine Dropdown-Liste in MVC4 (View), die aktuelle Jahr plus die nächsten 10 Jahre zeigen? Soll ich eine Aufzählung machen und sie dann in mein Ansichtsmodell aufnehmen und eine Variable dieses Aufzählungstyps erstellen?Dropdown für die nächsten 10 Jahre

+1

Haben Sie irgendwas probiert? Vielleicht eine for-Schleife, die bei DateTime.Now.Year beginnt und 9-mal inkrementiert. Wie denkst du über die Razor-Syntax? – Gusdor

+6

Ihre enum-Lösung erfordert eine erneute Bereitstellung Ihrer App am 31. Dezember. –

Antwort

17
Enumerable.Range(DateTime.Now.Year, 10) 

finden Sie Zahlen, die Sie dann in der Select() Konstruktor für Ihre Dropdownlist

9

Wenn Sie für Enum verwenden, dass es hart codiert .Every Ende des Jahres können Sie deploy wieder haben sollte die Lösung.So besser als folgenden Code in Ihrer Business-Schicht zu verwenden und schieben Sie in Sicht Layer dann basierend auf Server-Datum kann jeder Benutzer die nächsten 10 Jahre abrufen.

IList<int> years= Enumerable.Range(DateTime.Now.Year, 10).ToList(); 
4

Für Rasierer können Sie den folgenden Code verwenden

@Html.DropDownList("Year", Enumerable.Range(DateTime.Now.Year, 10).ToList(), "-- Select Year --") 
0

hinzufügen "neue Select":

@ Html.DropDownList ("Jahr", neue Select (Enumerable.Range (Datetime. Now.Year, 10) .ToList()), "- Select Year -")

+0

Bitte zahlen Sie mindestens * basic * Aufmerksamkeit auf die Formatierung Ihrer Antwort. Sonst riskierst du Downvotes. –

+0

Außerdem macht es kaum Sinn, eine neue Antwort auf eine zwei Jahre alte Frage mit einer * angenommenen * Antwort zu posten. –

Verwandte Themen