Bonjour, et si vous essayiez ceci (dans le cas où vous utilisez la méthode DisplayFor)
private IEnumerable<SelectListItem> AddDefaultOption(IEnumerable<SelectListItem> list, string dataTextField, string selectedValue)
{
var items = new List<SelectListItem>();
items.Add(new SelectListItem() { Text = dataTextField, Value = selectedValue});
items.AddRange(list);
return items;
}
Il suffit ensuite d'ajouter le code suivant à votre contrôleur
//lambda expression binding
ViewBag.YourList = db.YourTable.Select(x => x).ToList().Select(x => new SelectListItem
{
Value = x.Id.ToString(),
Text = x.DisplayName.ToString()
});
ViewBag.YourList = AddDefaultOption(ViewBag.YourList, "Select One...", "null", true);
Enfin, au niveau de la vue, vous pouvez afficher une liste déroulante ou une boîte combinée, comme suit
<div class="editor-label">
Your Label
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.ForeignKey, (IEnumerable<SelectListItem>)ViewBag.YourList)
</div>