Nicht-Datenbank-Feld oben in SelectList für Razor-Ansicht in MVC einschließen 5
Ich bin vorbei, mit ViewBag, eine Select der Ansicht
ViewBag.HostID = new SelectList(db.Hosts.OrderBy(x => x.Name), "id", "Name");
und
ViewBag.VisitorID = new SelectList(db.Visitors.OrderBy(x => x.LastName).
ThenBy(y => y.FirstName), "id", "VisitorName");
, die erfolgreich in meinem Razor Ansicht
jedoch
<div class="form-group">
@Html.LabelFor(model => model.HostID, "HostID", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("HostID", null, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.HostID, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.VisitorID, "VisitorID", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("VisitorID", null, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.VisitorID, "", new { @class = "text-danger" })
</div>
</div>
mit gerendert wird, Ich möchte in der DropDownList eine Zeile auswählen können, die keine HostID oder VisitorID suc zugeordnet ist h, dass ich dann einen neuen Host oder Besucher eingeben kann und mein Controller die erforderlichen Datensätze erstellt, wenn das Formular zurückgesendet wird.
Daher meine Frage ist, wie füge ich ein Nicht-Datenbank-Feld an den Anfang der SelectList, die dem Controller (einmal zurückgebucht) bedeutet, dass ein neuer Datensatz anstelle einer Referenz auf einen vorhandenen Host erstellt werden soll verwendet werden?
den 'SelectList' Nach dem Erstellen verwenden' .ToList() 'auf dem resultierenden' IEnumerable 'und' verwendet Insert() 'zu je sein würde, -wird ein neues 'SelectListItem' geben Aber es ist nicht klar, wie Sie es verwenden würden - Sie kennen keine Informationen über den' Host' oder 'Visitor' aus den geposteten Daten, also was würden Sie in die Datenbank einfügen? –
Es gibt zusätzliche Formularelemente in der Razor-Datei, die ausgefüllt werden müssen, wenn ein Besucher, der nicht in der Liste enthalten ist, benötigt wird. –
Dann können Sie es einfach tun, wie im ersten Kommentar (oder 'ViewBag.HostID = neue Liste