Tengo un problema con los menús desplegables y la viewbag. Estoy configurando un menú desplegable usando el siguiente código en mi controlador:MVC 3 Lista desplegable que pierde el valor seleccionado con ViewBag
applicationGuid = new Guid(form["applicationList"]);
var applications = _applicationRepository.List();
ViewBag.applicationList = new SelectList(applications, "Id", "Name", applicationGuid);
y en la vista, esto funciona perfectamente y devuelve el valor previamente seleccionado (applicationGuid):
@Html.DropDownList("applicationList", "")
Ahora quiero usar el siguiente código como quiero añadir algunos atributos de la lista desplegable:
@Html.DropDownList("applicationList", ViewBag.applicationList as SelectList, "", new { rel = "0", @class = "required" })
pero por alguna razón, el valor seleccionado no se ha visualizado (a pesar de que se pasa a la vista y que puede sE e selected = "true" contra el elemento correcto en ViewBag SelectList).
Los dos ejemplos anteriores hacen que (éste tiene la selected = "selected"):
<select id="applicationList" name="applicationList"><option value=""></option><option selected="selected" value="2f666645-9b28-406f-bd9f-9ecc009346a6">app1</option><option value="898cbbb5-5dff-4378-b15a-9ecc00b8242f">app2</option></select>
y como tal (seleccionado se ha ido !!):
<select class="required" id="applicationList" name="applicationList" rel="0"><option value=""></option><option value="2f666645-9b28-406f-bd9f-9ecc009346a6">app1</option><option value="898cbbb5-5dff-4378-b15a-9ecc00b8242f">app2</option></select>
¿Puede alguien explicar ¿Qué estoy haciendo mal aquí y por qué está perdiendo el valor seleccionado? He encontrado una serie de publicaciones que explican cómo los nombres de los elementos de datos de las vistas no pueden entrar en conflicto, etc., pero lo he eliminado con nombres aleatorios y ¡nada parece funcionar! ¿Es esto un problema en MVC3?
Gracias por la respuesta Carson. Ya lo he intentado y no funcionó para mí. Lo intenté de nuevo y sigue siendo el mismo producto. No estoy seguro de lo que estoy haciendo diferente a usted. – user728848
Olvídalo ... ¡esto funciona! Cuando cambié el nombre me olvidé de cambiar un poco de código que hizo esto: if (form ["applicationListX"]! = "" && form ["applicationListX"]! = Null) applicationGuid = new Guid (form ["applicationListX] "]); ¡así que estaba perdiendo mi valor! Gracias por tu ayuda. – user728848
¡Muchas gracias! Funciona ahora sin defectos. Declararía que esto es un error ... – dampee