Antworten:
Lesen Sie diesen MSDN-Artikel und eine Beispielverwendung hier zum Stapelüberlauf .
Angenommen, Sie haben die folgende Linq / POCO-Klasse:
public class Color
{
public int ColorId { get; set; }
public string Name { get; set; }
}
Angenommen, Sie haben das folgende Modell:
public class PageModel
{
public int MyColorId { get; set; }
}
Nehmen wir zum Schluss an, Sie haben die folgende Liste von Farben. Sie können aus einer Linq-Abfrage, einer statischen Liste usw. stammen.
public static IEnumerable<Color> Colors = new List<Color> {
new Color {
ColorId = 1,
Name = "Red"
},
new Color {
ColorId = 2,
Name = "Blue"
}
};
In Ihrer Ansicht können Sie eine Dropdown-Liste wie folgt erstellen:
<%= 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
)
)
%>
oder Sie können keine Klassen schreiben, so etwas direkt in die Ansicht einfügen.
Vermeiden Sie viel Fettfingern, indem Sie mit einem Wörterbuch im Modell beginnen
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"}
};
}
}
Konvertieren Sie es in der Ansicht in eine Liste zur Anzeige
@Html.DropDownListFor(m => m.Egg.Keys,
new SelectList(
Model.Egg,
"Key",
"Value"))
Hallo, hier ist, wie ich es in einem Projekt gemacht habe:
@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"})
Ich hoffe es hilft jemandem. Vielen Dank
Oder wenn es aus einem Datenbankkontext stammt, den Sie verwenden können
@Html.DropDownListFor(model => model.MyOption, db.MyOptions.Select(x => new SelectListItem { Text = x.Name, Value = x.Id.ToString() }))
Mit "Bitte wählen Sie einen Artikel"
@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" })
Abgeleitet von den Codes: Master Programmer && Joel Wahlund ;
King-Referenz: https://stackoverflow.com/a/1528193/1395101 JaredPar ;
Vielen Dank Master Programmer && Joel Wahlund && JaredPar ;
Viel Glück Freunde.
@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" />
}
Ich denke, diese Antwort ähnelt der von Berat, da Sie den gesamten Code für Ihre DropDownList direkt in die Ansicht einfügen. Aber ich denke, dies ist eine effiziente Möglichkeit, eine ay / n (boolesche) Dropdown-Liste zu erstellen, deshalb wollte ich sie teilen.
Einige Hinweise für Anfänger:
Hoffe das hilft jemandem,