2015-04-15 23 views
16

Ho visto esempi simili in cui le persone hanno bisogno di compilare un elenco di oggetti ma tutto quello che vorrei ottenere è avere i numeri 1-10 nel mio DropdownlistFor a mio avviso . C'è un modo semplice per farlo. In seguito è quello che ho.Asp.net MVC come compilare elenco a discesa con i numeri

<div class="form-group"> 
    @Html.LabelFor(model => model.NumberOfTickets, new { @class = "control-label col-md-2" }) 
    <div class="col-md-10"> 
     @Html.DropDownListFor(model => model.NumberOfTickets) 
     @Html.ValidationMessageFor(model => model.NumberOfTickets) 
    </div> 
</div> 
+0

Puoi pubblicare la tua modella? –

+0

Questo è vicino a quello che hai chiesto. http://stackoverflow.com/questions/10709588/mvc3-dropdownlistfor – ANG

risposta

42

Si può usare qualcosa di simile a quanto segue:

@Html.DropDownListFor(m => m.NumberOfTickets, Enumerable.Range(1, 10).Select(i => new SelectListItem { Text = i.ToString(), Value = i.ToString() })) 

Tutto questo non fa altro che creare un enumerabile di numeri interi compresi tra 1 e 10 e quindi utilizza un po 'di LINQ per trasformarlo in un IEnumerable<SelectListItem> che Html.DropDownListFor può accettare.

3

Elenco anni da anno corrente a n anni indietro.

int startYear = 1980 
@Html.DropDownListFor(m => m.DateofEstablishment, Enumerable.Range(0, (DateTime.Now.Year - startYear -1)).Select(i => new SelectListItem { Text = (DateTime.Now.Year - i).ToString(), Value = i.ToString() }), "Please select year", new { @class = "form-control", @required = "required" }) 
Problemi correlati