c# - mvc - IEnumerable<cadena> a SelectList, no se selecciona ningún valor
mvc c# (4)
Pruebe esto en su lugar:
IDictionary<string,string> list = GetTheValues();
var selectList = new SelectList(list, "Key", "Value", "SelectedValue");
SelectList (al menos en la Vista previa 5) no es lo suficientemente inteligente como para ver que los elementos de IEnumerable son de tipo de valor y, por lo tanto, debe usar el elemento para el valor y el texto. En cambio, establece el valor de cada elemento en "nulo" o algo así. Es por eso que el valor seleccionado no tiene ningún efecto.
Tengo algo como lo siguiente en una aplicación ASP.NET MVC:
IEnumerable<string> list = GetTheValues();
var selectList = new SelectList(list, "SelectedValue");
E incluso si se define el valor seleccionado, no se está seleccionando en la vista. Tengo la sensación de que me estoy perdiendo algo aquí, ¡así que si alguien puede sacarme de encima mi miseria!
Sé que puedo usar un tipo molesto para proporcionar la clave y el valor, pero preferiría no agregar el código adicional si no fuera necesario.
EDITAR: Este problema ha sido resuelto por ASP.NET MVC RTM.
Eche un vistazo a esto: ASP.NET MVC SelectList selectedValue Gotcha
Esta es una buena explicación de lo que está sucediendo como cualquier otra.
Si solo intenta asignar un IEnumerable<string>
SelectList
a SelectList
, puede hacerlo en línea de esta manera:
new SelectList(MyIEnumerablesStrings.Select(x=>new KeyValuePair<string,string>(x,x)), "Key", "Value");
Prueba esto
ViewBag.Items = list.Select(x => new SelectListItem()
{
Text = x.ToString()
});