vista - El menú desplegable ASP.NET MVC con una opción vacía predeterminada
mvc c# (4)
Esta solución fácil funcionó para mi proyecto mvc5:
en vista:
@{
Model.ModelItemsList.Add(new ModelItem{ });
SelectList modelItemSelectList = new SelectList(Model.ModelItemsList, "ModelItemID", "ModelItemName");
}
Simplemente agregue un nuevo elemento a la List<>
que desea mostrar en su vista. En mi caso, agregué un "ModelItem" vacío a mi List<ModelItem> ModelItemList
. Dado que mi ModelItemID es un Guid, tuve que comprobar Guid.Empty en mi método de controlador y hacer algo de código. Eso es todo.
¿Hay alguna manera de incluir una opción vacía predeterminada (o con texto) si no hay un valor seleccionado para una lista desplegable?
La solución presentada aquí funcionó muy bien para mí: http://forums.asp.net/t/1142484.aspx/1
La idea básica es que establezca la propiedad AppendDataBoundItems
de su DropDownList
en true
y luego coloque un asp:ListItem
en DropDownList
y que se convierta en su elemento predeterminado con todos los elementos de datos que le seguirán.
Por ejemplo:
Controller :
private void InitScreenInfoCollate()
{
IEnumerable<MstBrd> listbrd = ibrandRepository.GetItemsByUsercode("");
ViewBag.Brands = new SelectList(listbrd, "brd_cod", "brd_mei", null);
}
View :
@Html.DropDownList("Brands", null, string.Empty, new { @class = "form-control"})
Resultado:
Lo siguiente precederá a string.Empty a SelectList (o IEnumerable) especificado en el elemento ViewData ["Menú"]. La selección tendrá identificación y nombre MenuID
.
<%= Html.DropDownList( "MenuID",
(IEnumerable<SelectListItem>)ViewData["Menu"],
string.Empty ) %>
Documentación: método DropDownList