Existe-t-il un moyen d'inclure une option vide par défaut (ou avec du texte) s'il n'y a pas de valeur sélectionnée pour une liste déroulante?
Le texte ci-dessous ajoutera la chaîne. Vide à la SelectList (ou IEnumerable) spécifié dans l'élément ViewData ["Menu"]. La sélection aura l'identifiant et le nom MenuID
.
<%= Html.DropDownList( "MenuID",
(IEnumerable<SelectListItem>)ViewData["Menu"],
string.Empty ) %>
Documentation: méthode DropDownList
Par exemple:
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"})
Résultat :
Cette solution simple a fonctionné pour mon projet mvc5:
en vue:
@{
Model.ModelItemsList.Add(new ModelItem{ });
SelectList modelItemSelectList = new SelectList(Model.ModelItemsList, "ModelItemID", "ModelItemName");
}
Ajoutez simplement un nouvel élément au List<>
que vous souhaitez afficher dans votre vue. Dans mon cas, j'ai ajouté un "ModelItem" vide à mon List<ModelItem> ModelItemList
. Étant donné que mon ModelItemID est un Guid, j'ai dû vérifier Guid.Empty dans ma méthode de contrôleur et faire du code. C'est tout.