Ich versuche DropDownList
eine Rasiermesseransicht zu erstellen .
Würde mir jemand dabei helfen?
Normaler HTML5-Code:
<select id="dropdowntipo">
<option value="Exemplo1">Exemplo1</option>
<option value="Exemplo2">Exemplo2</option>
<option value="Exemplo3">Exemplo3</option>
</select>
Ich habe es versucht:
@{
var listItems = new List<ListItem> {
new ListItem { Text = "Exemplo1", Value = "Exemplo1" },
new ListItem { Text = "Exemplo2", Value = "Exemplo2" },
new ListItem { Text = "Exemplo3", Value = "Exemplo3" }
};
}
@Html.DropDownListFor(model =>
model.tipo,
new SelectList(listItems),
"-- Select Status --"
)
c#
asp.net-mvc
razor
user2232273
quelle
quelle
var listItems = ...
sollten sich in Ihrem Controller befinden, nicht in Ihrer Ansicht.ListItem
da es sich um ein UI-gebundenes Konzept handelt. Es sollte nicht einmal wirklich im Ansichtsmodell sein, sondern nur in der Ansicht. Der Controller sollte das Ansichtsmodell erstellen, das Ansichtsmodell sollte die Daten enthalten, die Ansicht sollte UI-Elemente (wieListItem
) zu diesen Daten erstellen.Antworten:
quelle
quelle
Sie können dies verwenden:
quelle
// ViewModel
// Aufzählungsklasse:
// Controller-Aktion
// Aktion anzeigen
quelle
Hier ist die einfachste Antwort:
aus Ihrer Sicht nur hinzufügen:
ODER fügen Sie in Ihrem Controller Folgendes hinzu:
und Ihre Ansicht fügen Sie einfach hinzu:
Das habe ich bei Jess Chadwick gelernt
quelle
Glauben Sie mir, ich habe viele Möglichkeiten ausprobiert, und ich habe hier eine Antwort
Aber ich suche immer nach den besten Praktiken und der beste Weg, den ich bisher sowohl für Front-End- als auch für Back-End-Entwickler kenne, ist
for loop
(ja, ich mache keine Witze).Denn wenn das Front-End Ihnen die UI-Seiten mit Dummy-Daten zur Verfügung stellt, hat er auch Klassen und einige Inline-Stile für bestimmte Auswahloptionen hinzugefügt, damit diese
hard to deal
verwendet werden könnenHtmlHelper
Schauen Sie sich das an:
Dies vom Front-End-Entwickler, daher ist die beste Lösung die Verwendung der for-Schleife
fristly
create
oderget your list
von Daten aus (...) in der Controller-Aktion und legen Sie sie in ViewModel, ViewBag oder was auch immerZweitens machen Sie in der Ansicht diese einfache for-Schleife, um die Dropdown-Liste zu füllen
Auf diese Weise brechen Sie das UI-Design nicht und es ist einfach, leicht und besser lesbar
Ich hoffe, dies hilft Ihnen, auch wenn Sie kein Rasiermesser verwendet haben
quelle
Die Verwendung eines Arrays wäre etwas effizienter als das Erstellen einer Liste.
quelle
Siehe: - Erstellen Sie eine Dropdown-Liste im MVC 4-Rasiererbeispiel
quelle
benutze einfach This
und in Ansicht verwenden Sie Folgendes.
Wenn Sie Daten aus dem Datensatz abrufen und diese Daten in ein Listenfeld einfügen möchten, verwenden Sie den folgenden Code.
und in der Ansicht schreiben Sie folgenden Code.
quelle
Wenn Sie ASP.net 5 (MVC 6) oder höher verwenden, können Sie die neuen Tag-Helfer für eine sehr schöne Syntax verwenden:
quelle
Dies kann auch so gemacht werden
quelle
quelle