2013-11-01 11 views
8

jaki jest najlepszy sposób tworzenia listy rozwijanej w MVC4 (Widok), które pokazują bieżący rok plus kolejne 10 lat? Czy powinienem wyliczyć, a następnie uwzględnić go w moim modelu widoku i utworzyć zmienną tego typu wyliczeniowego?Dropdown Przez następne 10 lat

+1

Czy próbowałeś coś? Być może pętla for zaczynająca się od DateTime.Now.Year i inkrementująca 9 razy. Co sądzisz o składni Razor? – Gusdor

+6

Twoje rozwiązanie wyliczeniowe wymagałoby ponownego wdrożenia Twojej aplikacji co 31 grudnia. –

Odpowiedz

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

daje numery, które można następnie wykorzystać w SelectList() Konstruktor dla DropDownList

9

Podczas korzystania Enum dla że będzie ciężko zakodowanej .Every koniec roku trzeba było ponownie Deploy rozwiązanie.Takiej lepiej użyć następującego kodu w warstwie biznesowej i wcisnąć warstwę widoku, a następnie na podstawie daty serwera, którą każdy użytkownik może odzyskać przez następne 10 lat.

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

Dla maszynki można użyć następującego kodu

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

dodać "nowego SelectList":

@ Html.DropDownList ("rok", nowy selectList (Enumerable.Range (DateTime. Teraz.Rok, 10) .ToList()), "- Wybierz rok -")

+0

Należy zapłacić co najmniej * podstawową * uwagę przy formatowaniu odpowiedzi. W przeciwnym razie ryzykujesz spadkiem. –

+0

Co więcej, nie ma większego sensu umieszczanie nowej odpowiedzi na dwuletnie pytanie z * akceptowaną * odpowiedzią. –