Lista desplegable de MVC3 para

Me gustaría hacer una lista desplegable, con los números 0-10. Para que los usuarios puedan calificar algo. Por el momento, tengo una etiqueta: @Html.LabelFor(model=> model.RATE) ¿Cómo puedo modificar este código que tendré un cuadro desplegable? Y que el valor del cuadro desplegable se almacenará en model.RATE?

La etiqueta está funcionando, pero sería mucho mejor tener un menú desplegable.

SOLUCIÓN:

@Html.DropDownListFor(model => model.RATE, Enumerable.Range(0,11).Select( x => new SelectListItem { Text = x.ToString() }));

preguntado el 22 de mayo de 12 a las 21:05

3 Respuestas

Solo crea una lista de SelectListItem objetos que contienen las calificaciones y, a continuación, utilice Html.DropDownListFor con la calificación almacenada en su modelo (Model.RATE).

@{
    var ratings = new List<SelectListItem>();
    for( var i = 0; i <= 10; i++ ) {
        days.Add( new SelectListItem { Text = i.ToString(), Value = i.ToString(), Selected = Model.RATE == i } );
    }
}
@Html.DropDownListFor( x => x.RATE, ratings )

contestado el 22 de mayo de 12 a las 21:05

@Html.DropDownListFor(model => model.RATE, new SelectList(Enumerable.Range(0, 11)))

Esto hará el enlace de datos al formulario y desde el formulario.

contestado el 22 de mayo de 12 a las 21:05

0-10 tiene 11 elementos. Entonces Enumerable.Rango (0,11). - DMulligan

Esto no funciona para mí ... no puedes asignar un Enumerable<int> a una Enumerable<SelectListItem>. - ethan marrón

Podrías usar Enumerable.Range(0,11).Select( x => new SelectListItem { Text = x.ToString() } ) - ethan marrón

eso es cierto, pero SelectList tiene un constructor solo para un Enumerable, por lo que puede usar el constructor para que lo haga por usted. - Blast_dan

Gracias, esto me funciona: @Html.DropDownListFor(modelo => modelo.TARIFA, Enumerable.Range(0,11).Select( x => new SelectListItem { Text = x.ToString() })); - 1408786usuario

@Html.DropDownListFor(m => m.RATE, Model.RateSelectList, "<- Select Option ->")

Model.RateSelectList sería de tipo IEnumerable , m.RATE sería su propiedad de entero anulable (¿int?). El tercer parámetro sería el texto predeterminado que se mostraría si m.RATE es nulo.

contestado el 22 de mayo de 12 a las 21:05

No tenía idea de cómo establecer un valor predeterminado hasta que encontré esto. Gracias. - BrianLegg

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.