Tengo el tipo típico de lista desplegable YesNo en la aplicación. Para eso, he desarrollado una clase de modelo (en lugar de la utilidad ViewModel) para futuros prupose de extensión.DropDownListFor (...) seleccionando booleano falso de forma predeterminada
public string Text { get; set; } // represents text part
public bool Value { get; set; } // represent value
public List<DropDown> DropDowns { get; set; } //list for binding
public void BuildYesNoDropDown()
{
DropDowns = new List<DropDown>();
DropDowns.Add(new DropDown { Text = "Yes", Value = true });
DropDowns.Add(new DropDown { Text = "No", Value = false });
}
Entonces, se unen en la vista como la siguiente:
@Html.DropDownListFor(x => x.SelectedValue, new SelectList(Model.DropDowns, "Value", "Text",1),"Select") //last para - OptionLabel
En la vista, los tres parámetros son cada pantalla es decir, "Select", "Sí" y "No". Pero, por defecto, se ha seleccionado "No". Si hago la propiedad "Valor" como un número entero, entonces funciona bien y de forma predeterminada se selecciona "Seleccionar", pero como se menciona en el código, si tiendo a ir con el tipo de bool, entonces se selecciona "No".
Cómo obtener un comportamiento normal cuando DataValueField es bool?
Gracias por la respuesta. Pero, supongo que mi pregunta fue malentendida. Actualmente, con valor bool por defecto, se selecciona "NO". En su lugar, quiero "Seleccionar", que se debe seleccionar OptionLabel. – StartingFromScratch
Voy a dejar que otra persona responda esa - usted debe proporcionar el modelo 'DropDown' para ellos. – Cymen
No tengo suficiente reputación para publicar el código ... :(Supongo que el problema es con el tipo de expresión lambda. En el código anterior, el tipo de x => x.SelectedValue es bool. Eso obliga al motor a seleccionar el último "falso" "valor en la colección proporcionada. Sin embargo, no estoy seguro" – StartingFromScratch