Meine Tabelle in db hat Felder: Id
, Organisation
, Info
.
Ich möchte eine Dropdowm-Liste machen:
<select>
<option value='Id there'>'Organisation there'</option>...
Ich versuche es mit ViewBag:
ViewBag.Organisations = db.Organisations.ToList(); // get all fields from table using dbContext
und in View:
@Html.DropDownList('I don`t know what i shoud write here, please help')
Wie kann ich Dropdown-Listen erstellen?
Sie müssen eine SelectList
in Controller-Aktion mit einem der verfügbaren Konstruktoren erstellen. In View übergeben Sie die DropDownList-Methode als Parameter.
Im Controller tun Sie dies:
ViewBag.Organisations = new SelectList(db.Organisations.ToList(),"Id","Organisation");
in SelectList
müssen wir angeben, welche Eigenschaft als value
und welche als text
im option
-Tag verwendet werden soll, den wir in den letzten beiden Parametern angeben.
und dann müssten Sie es in View folgendermaßen verwenden:
@Html.DropDownList("Organization",ViewBag.Organisations as SelectList)
Hier wird der erste Parameter als Name des Elements select
verwendet und der zweite Parameter wird zum Auffüllen der Elemente option
in der Variable select
verwendet.
Im Folgenden finden Sie eine Liste der für Html.DropDownList
verfügbaren Überladungen:
Ich empfehle Ihnen, ein ViewModel für Ihre Seite mit einer OrganisationId
-Eigenschaft zu definieren. Dieser Wert wird also gefüllt, wenn Sie einen Eintrag in der Dropdown-Liste der Organisationen auswählen.
@model BCO.Models.SelectOrganisationViewModel
@{
ViewBag.Title = "OrganisationInfo";
}
<div>
@Html.DropDownListFor(o => o.OrganisationId,
new SelectList(ViewBag.Organisations, "Id", "Name"))
</div>
Die SelectList erwartet sich
als Parameter.
Sie können selectlist von viewbag wie folgt verwenden
@Html.DropDownListFor(m => m.Name, ViewBag.GetData as SelectList, new { @class = "form-control" })
hier wird ViewBag.GetData vom Controller aufgefüllt. Der Controller-Code sollte wie folgt aussehen
ViewBag.GetData = new SelectList(repository.GetOrganisation(), "ID", "OraganizationName");