Réponses:
Consultez cet article MSDN et un exemple d'utilisation ici sur Stack Overflow .
Disons que vous avez la classe Linq / POCO suivante:
public class Color
{
public int ColorId { get; set; }
public string Name { get; set; }
}
Et disons que vous avez le modèle suivant:
public class PageModel
{
public int MyColorId { get; set; }
}
Et, enfin, disons que vous avez la liste de couleurs suivante. Ils peuvent provenir d'une requête Linq, d'une liste statique, etc.:
public static IEnumerable<Color> Colors = new List<Color> {
new Color {
ColorId = 1,
Name = "Red"
},
new Color {
ColorId = 2,
Name = "Blue"
}
};
Dans votre vue, vous pouvez créer une liste déroulante comme ceci:
<%= Html.DropDownListFor(n => n.MyColorId,
new SelectList(Colors, "ColorId", "Name")) %>
<%:
Html.DropDownListFor(
model => model.Color,
new SelectList(
new List<Object>{
new { value = 0 , text = "Red" },
new { value = 1 , text = "Blue" },
new { value = 2 , text = "Green"}
},
"value",
"text",
Model.Color
)
)
%>
ou vous pouvez n'écrire aucune classe, mettre quelque chose comme ça directement dans la vue.
Évitez de gros doigté en commençant par un dictionnaire dans le modèle
namespace EzPL8.Models
{
public class MyEggs
{
public Dictionary<int, string> Egg { get; set; }
public MyEggs()
{
Egg = new Dictionary<int, string>()
{
{ 0, "No Preference"},
{ 1, "I hate eggs"},
{ 2, "Over Easy"},
{ 3, "Sunny Side Up"},
{ 4, "Scrambled"},
{ 5, "Hard Boiled"},
{ 6, "Eggs Benedict"}
};
}
}
Dans la vue, convertissez-le en liste pour l'affichage
@Html.DropDownListFor(m => m.Egg.Keys,
new SelectList(
Model.Egg,
"Key",
"Value"))
Salut, voici comment je l'ai fait dans un projet:
@Html.DropDownListFor(model => model.MyOption,
new List<SelectListItem> {
new SelectListItem { Value = "0" , Text = "Option A" },
new SelectListItem { Value = "1" , Text = "Option B" },
new SelectListItem { Value = "2" , Text = "Option C" }
},
new { @class="myselect"})
J'espère que cela aide quelqu'un. Merci
Ou si c'est à partir d'un contexte de base de données, vous pouvez utiliser
@Html.DropDownListFor(model => model.MyOption, db.MyOptions.Select(x => new SelectListItem { Text = x.Name, Value = x.Id.ToString() }))
Avec "Veuillez sélectionner un article"
@Html.DropDownListFor(model => model.ContentManagement_Send_Section,
new List<SelectListItem> { new SelectListItem { Value = "0", Text = "Plese Select one Item" } }
.Concat(db.NameOfPaperSections.Select(x => new SelectListItem { Text = x.NameOfPaperSection, Value = x.PaperSectionID.ToString() })),
new { @class = "myselect" })
Dérivé des codes: Master Programmer && Joel Wahlund ;
Référence King: https://stackoverflow.com/a/1528193/1395101 JaredPar ;
Merci Maître Programmeur && Joel Wahlund && JaredPar ;
Bonne chance les amis.
@using (Html.BeginForm()) {
<p>Do you like pizza?
@Html.DropDownListFor(x => x.likesPizza, new[] {
new SelectListItem() {Text = "Yes", Value = bool.TrueString},
new SelectListItem() {Text = "No", Value = bool.FalseString}
}, "Choose an option")
</p>
<input type = "submit" value = "Submit my answer" />
}
Je pense que cette réponse est similaire à celle de Berat, en ce sens que vous mettez tout le code de votre DropDownList directement dans la vue. Mais je pense que c'est un moyen efficace de créer une liste déroulante ay / n (booléen), donc je voulais la partager.
Quelques notes pour les débutants:
J'espère que cela aide quelqu'un,