2011-09-07 10 views
17

Tengo un montón de listas desplegables en mi opinión, como este:SelectList con una selección nula

@Html.DropDownListFor(model => model.Process, Model.ProcessList) 

Todos ellos toman en un SelectList basadas en datos de una tabla de base de datos de la siguiente manera:

ProcessList = new SelectList(_db.Processes, "ID", "Name"); 

donde _db.Processes devuelve ObjectSet<Process>.

El problema que tengo es que a veces la propiedad establecida por la lista desplegable no puede seleccionarse, es decir, null. ¿Cómo puedo añadir una selección null a la SelectList>

Respuesta

25
@Html.DropDownListFor(model => model.Process, Model.ProcessList,"--Select Process--") 

La línea anterior añadiría --select process-- en la parte superior de la lista de selección y si se selecciona este valor, cadena vacía se publicarán y la propiedad obligado a establecer en null (Proceso en este caso)

+0

He encontrado un problema con esto. Cuando proporciona el parámetro 'optionLabel', el menú desplegable ya no selecciona el elemento actual en función del parámetro SelectList 'selectedValue'. Siempre selecciona la opción predeterminada al editar. ¿Alguna sugerencia? –

+0

lo que está diciendo solo debería ocurrir cuando la propiedad relevante del modelo no contiene ningún valor. Por ejemplo, si el valor de 'model.Process' es nulo o algo que no está presente en la lista, seleccionará la etiqueta por defecto. –

+3

He encontrado que tan pronto como agregue una entrada nula a la lista (a través del modelo, o mediante la opción de etiqueta) solo seleccionará el primer elemento de forma predeterminada. He cambiado a usar una DropDownList de KendoUI y el problema desapareció, así que supongo que puede ser un error con DropDownList estándar (o la configuración de mi proyecto). El menú desplegable de KendoUI requiere un valor no nulo (por ejemplo, 0) en todas las entradas, por lo que no es una solución perfecta. –

Cuestiones relacionadas