vistas vista una tabla paginacion pagina net mvc multiples mostrar modelos modelo misma filtros filtro datos controlador busqueda asp asp.net-mvc html.dropdownlistfor html-select

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