selectlistitem net mvc framework ejemplos dropdownlist asp c# asp.net-mvc selectlist

c# - net - mvc ajax dropdownlist



Problema con ASP.Net MVC SelectLIst y List<SelectListItems> (1)

Necesita cambiar la línea donde la construye para decirle dónde buscar los valores. En tu caso sería:

SelectList selectList = new SelectList(selectListItems, "Value", "Text");

Sin embargo, esto no se transferirá al artículo seleccionado. En ese caso, necesitará averiguar qué artículo debe ser el seleccionado y pasar su valor a través del siguiente parámetro.

Aquí hay un ejemplo:

List<SelectListItem> items = new List<SelectListItem>(); items.Add(new SelectListItem() { Text = "Test1", Value = "1", Selected = false }); items.Add(new SelectListItem() { Text = "Test8", Value = "8", Selected = true }); items.Add(new SelectListItem() { Text = "Test3", Value = "3", Selected = false }); items.Add(new SelectListItem() { Text = "Test5", Value = "5", Selected = false }); SelectList sl = new SelectList(items, "Value", "Text", "8");

También es posible que desee revisar este hilo SO que podría ser útil.

Edición: Acabo de ver su comentario y no funciona porque no es lo suficientemente inteligente como para buscar los campos Text y Value de forma predeterminada. Podría pasarle un tipo de objetos y le da la posibilidad de enlazarlo definiendo qué propiedades se asignarán a las propiedades de Text y Value .

Estoy extendiendo un Enum y, dado el siguiente código, selectListItems es una Lista genérica de SelectListItems que tiene todos los valores correctos para mi Enum.

El primer bucle foreach funciona bien. Sin embargo, cuando creo el SelectList real y paso en selectListItems , todos los valores se pierden. ¿Cómo puedo mantener esos valores intactos?

foreach (SelectListItem item in selectListItems) { string tex = item.Text; string val = item.Value; string sel = item.Selected.ToString(); } SelectList selectList = new SelectList(selectListItems); foreach (SelectListItem slid in selectList) { string tex = slid.Text; string val = slid.Value; string sel = slid.Selected.ToString(); }