Füllen Sie die Daten in DropDownList im Erstellen-Modus MVC 4
Ich versuche, füllen Sie die Daten aus der Tabelle in DropDownList mit MVC4. Versuchen, es herauszufinden, wie man all die Sprachen' - Titel in der DropDown-Liste im Edit-mode sind.
Modelle:
public class CategoryLanguage
{
public int ID { get; set; }
public int LanguageID { get; set; }
public string Title { get; set; }
public string Description { get; set; }
}
public class Language
{
public int ID { get; set; }
public string Title { get; set; }
}
Controller:
public ActionResult Create()
{
using (MyDBContext db = new MyDBContext())
{
ViewBag.ID = new SelectList(db.Languages, "ID", "Title");
return View();
}
}
//
//POST: /Emp/Create
[HttpPost]
public ActionResult Create(CategoryLanguage newCatLang)
{
using (MyDBContext db = new MyDBContext())
{
if (ModelState.IsValid)
{
db.CategoryLanguages.Add(newCatLang);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.ID = new SelectList(db.Languages, "ID", "Title", newCatLang.LanguageID);
return View(newCatLang);
}
}
Anzeigen:
@model MultilanguageCategories.CORE.Models.CategoryLanguage
@{
ViewBag.Title = "Create";
}
<h2>Add New Item</h2>
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
@Html.DropDownList("ID", "--Select--")
}
Versuchen, es herauszufinden, wie man all die Sprachen' - Titel in der DropDown beim erstellen von neuen CategoryLanguage Einheit. Die Fehlermeldung lautet: "Der Vorgang kann nicht abgeschlossen werden, da der DbContext entsorgt wurde." und diese Zeile markiert: @Html.DropDownList("ID", "--Select--")
statt
kann u geben Sie mir ein Beispiel?
Fügen Sie ein Feld Auswahlliste Feld in
Können Sie machen es klarer ?
check meine Antwort. kann sein, es kann Ihnen helfen, Ihr problem zu lösen.
ViewBag
versuchen, es zu speichern in Model
kann u geben Sie mir ein Beispiel?
Fügen Sie ein Feld Auswahlliste Feld in
Model
dann versuchen, wie diese Model.ID=Select...
Können Sie machen es klarer ?
check meine Antwort. kann sein, es kann Ihnen helfen, Ihr problem zu lösen.
InformationsquelleAutor Stiliyan Vasilev | 2014-01-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern Sie Ihre get-Methode "Erstellen" wie unten erwähnt :
Nun können Sie DropDownListFor wie unten erwähnt :
languages
außerhalbusing
blockSind Sie sicher ? Coz vor der Veröffentlichung der Antwort hier, ich zuerst schreiben, Beispiel-code und test.
Toll, dein code funktioniert perfekt in meinem Fall SpiderCode. Danke!
InformationsquelleAutor SpiderCode
sind Sie in der Nähe...
Müssen Sie die Sprachen wählen Sie Liste, um die viewbag (was Sie schon getan, aber mit einer schlecht benannten Schlüssel)
ie:
ViewBag.LanguagesList = new SelectList(db.Languages, "ID", "Title");
wenn Sie wollen, ein freies Feld, das ist einfach genug:
Den DropdownList sollte für eine Eigenschaft im Modell.
Als es sieht aus wie Sie mit einer Entity Framework-Klasse wie Ihr Modell müssen Sie sicherstellen, dass der Kontext nicht entsorgt werden, bevor die Ansicht gerendert wird.
Laut Microsoft ist beispielsweise link instanzieren den context an der Spitze des Controllers, und legen Sie die using-Anweisung in der Create-Methode.
ie :
Ich gehe davon aus, dass, weil das Modell verwendet wird, ist ein Entity-Framework-Klasse, und der Rahmen entsorgt wird, bevor der view geladen wird. Wenn Sie einen Blick auf Microsoft ' s Z.B. hier: link Sie werden bemerken, dass der Kontext konstruiert wird, ist an der Spitze der controller-Klasse, und es gibt keine using-Anweisung (also es wird nur entsorgt, wenn der controller wird entsorgt - was nicht passieren, bis nach der Ansicht gerendert wird). Ich werde aktualisieren, meine Antwort zu zeigen.
InformationsquelleAutor James S