Te recomendamos que revises esta resolución en un entorno controlado antes de pasarlo a producción, saludos.
Solución:
Utilizar una ListBoxFor
en vez de DropDownListFor
:
@Html.ListBoxFor(m => m.branch, CommonMethod.getBranch("", Model.branch), "--Select--")
@Html.ListBoxFor(m => m.division, CommonMethod.getDivision(Model.branch, Model.division), "--Select--")
El branch
y division
Obviamente, las propiedades deben ser colecciones que contendrán los valores seleccionados.
Y un ejemplo completo de la forma correcta de crear un menú desplegable de selección múltiple usando un modelo de vista:
public class MyViewModel
public int[] SelectedValues get; set;
public IEnumerable Values get; set;
que se completaría en el controlador:
public ActionResult Index()
var model = new MyViewModel();
// preselect items with values 2 and 4
model.SelectedValues = new[] 2, 4 ;
// the list of available values
model.Values = new[]
new SelectListItem Value = "1", Text = "item 1" ,
new SelectListItem Value = "2", Text = "item 2" ,
new SelectListItem Value = "3", Text = "item 3" ,
new SelectListItem Value = "4", Text = "item 4" ,
;
return View(model);
y en la vista:
@model MyViewModel
...
@Html.ListBoxFor(x => x.SelectedValues, Model.Values)
Es el ayudante de HTML el que preseleccionará automáticamente los elementos cuyos valores coincidan con los del SelectedValues
propiedad.
A mi me sirve tambien para @Html.DropDownListFor
:
Modelo:
public class MyViewModel
public int[] SelectedValues get; set;
public IEnumerable Values get; set;
Controlador:
public ActionResult Index()
var model = new MyViewModel();
// the list of available values
model.Values = new[]
new SelectListItem Value = "2", Text = "2", Selected = true ,
new SelectListItem Value = "3", Text = "3", Selected = true ,
new SelectListItem Value = "6", Text = "6", Selected = true
;
return View(model);
Maquinilla de afeitar:
@Html.DropDownListFor(m => m.SelectedValues, Model.Values, new multiple = "true" )
Los valores seleccionados enviados en el controlador se ven así:
Comentarios y puntuaciones del artículo
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)