¿Hay alguna forma de incluir una opción vacía predeterminada (o con texto) si no hay un valor seleccionado para una lista desplegable?
asp.net-mvc
html.dropdownlistfor
html-select
James Newton-King
fuente
fuente
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:
fuente
Esta sencilla solución 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 al
List<>
que desea mostrar en su vista. En mi caso, agregué un "ModelItem" vacío a miList<ModelItem> ModelItemList
. Dado que mi ModelItemID es un Guid, tuve que buscar Guid.Empty en mi método de controlador y hacer algo de código. Eso es todo.fuente
La solución presentada aquí funcionó muy bien para mí: http://forums.asp.net/t/1142484.aspx/1
La idea básica es que se establece la
AppendDataBoundItems
propiedad de suDropDownList
atrue
y luego ponerasp:ListItem
en elDropDownList
y que se convertirá en su elemento por defecto con todos los elementos de enlace de datos que viene después de ella.fuente
-1
Esto es para ASP.NET Web Forms, no MVC.