Je dois lier un Html.DropDownList
avec seulement deux éléments de manière statique.
Text="Yes" Value="1"
Text="No" Value="0"
La chose importante est que je dois définir les champs de texte et de valeur.
Comment puis-je faire ceci?
Il est recommandé de ne pas créer la liste de sélection dans la vue. Vous devez le créer dans le contrôleur et le transmettre à l'aide de ViewData.
Exemple:
var list = new SelectList(new []
{
new { ID = "1", Name = "name1" },
new { ID = "2", Name = "name2" },
new { ID = "3", Name = "name3" },
},
"ID", "Name", 1);
ViewData["list"]=list;
return View();
vous passez au constratctor: l’objet IEnumerable, le champ valeur, le champ texte et la valeur sélectionnée.
dans la vue:
<%=Html.DropDownList("list",ViewData["list"] as SelectList) %>
J'ai utilisé cela fonctionne correctement
@Html.DropDownList("Status", new List<SelectListItem>
{
new SelectListItem{ Text="Active", Value = "1" },
new SelectListItem{ Text="Not-Active", Value = "0" }
})
Le code ci-dessous suppose que vous utilisez un moteur de vue rasoir, sinon vous devrez le convertir.
@{
var listItems = new List<ListItem>();
listItems.Add(new ListItem{Text="Yes", Value="1"});
listItems.Add(new ListItem{Text="No", Value="0"});
}
@Html.DropDownListFor(m=>m.SelectedValue, listItem);
Vous devriez envisager de créer le modèle dans votre code au lieu de la vue. Ce serait également un bon candidat pour un modèle d’éditeur.
si vous voulez être un peu explicitement alors essayez
@{
var domainsList = new SelectList(new []
{
new SelectListItem { Text = ".Com", Value = ".com", Selected = true },
new SelectListItem { Text = ".Shopping", Value = ".shopping"},
new SelectListItem { Text = ".Org", Value = ".org"},
new SelectListItem { Text = ".Net", Value = ".net"},
new SelectListItem { Text = ".AE", Value = ".ae"},
new SelectListItem { Text = ".Info", Value = ".info"},
}, "Value", "Text");
}
@Html.DropDownList("TopLevelDomains", domainsList)
Cela a résolu le problème pour moi:
<td>
@{ var RlistItems = new List<SelectListItem>();
RlistItems.Add(new SelectListItem { Text = "Select Room Type", Value = "0" });
RlistItems.Add(new SelectListItem { Text = "Meeting Room", Value = "1" });
RlistItems.Add(new SelectListItem { Text = "Office", Value = "2" });
RlistItems.Add(new SelectListItem { Text = "Cafeteria", Value = "3" });
}
@Html.DropDownListFor(model=>model.FirstOrDefault().RoomType
,RlistItems,RlistItems[item.RoomType.Value].Selected=true )
</td>