ASP.NET MVC dropdown-Liste aus Datenbank
Ok, also ich bin neu in diese ganze MVC-Welt, aber es scheint ein ziemlich guter Weg, um Dinge zu erledigen, und ich bin versucht zu machen, hier zu arbeiten.
Das problem ist:
Ich kann nicht Daten aus meiner Tabelle in meiner SQL-Datenbank eine einfache drop-down-Formular auf meiner Seite Anmeldung.
Ich habe nur keine Ahnung wohin mit dem Zeug, wo Sie code, die Tabelle zu öffnen, wählen Sie die ids, wo die response.write
und wie schicke ich es zur Ansicht?
Mein Modell ist dieses:
public class users
{
public string name {get; set;}
public int user_id {get; set;}
}
Mein Controller ist dieser:
[HttpGet]
public ActionResult ListUser()
{
return View();
}
Und meine Ansicht ist diese:
@model Community.Models.users
Ich habe gegoogelt für 2 Tage jetzt und beobachtete, wie mehrere videos auf youtube, aber ohne nutzen, ich kann es nicht finden. Bitte, jemand mit einigen Kenntnissen hier? Und bitte zeigen Sie mir einige gute tutorials und/oder Foren, in denen ich stöbern kann weitere Fragen, die ich haben könnte
Immer noch kein Glück bei diesem Projekt..
Ich bin erstellen Sie ein Formular und in diesem Formular möchte ich einen db-loop (IEnumerable
).. Aber das aktuelle Modell ist nicht eine IEnumerable
. Ich bin ziemlich viel stecken, sah einen Haufen von tutorials und Sie alle nur Liste EINE Verbindung, was ist, wenn möchte ich zwei Modelle?
Hier ist mein Controller, ich bekommen, müssen Sie passieren eine Liste in der Ansicht, richtig?
public ActionResult Registration()
{
return View(db.users.ToList());
}
Wie bekomme ich halten Sie auf der Liste aus meiner Sicht ohne eine IEnumerable
Modell?
@neoistheone, Ihrem Beispiel nicht helfen mir sehr, meine DB öffnet wie diese:
private DataBaseContext db = new DataBaseContext();
und ich weiß nicht wie, aber es öffnet die Verbindung.
Ich habe versucht, so viele Stunden, nun ja, es ist einfach albern, noch nicht geschlafen soo lange!
Ich bin verwendet, um die Programmierung von ASP-Classic fyi, und dies ist meine erste ernsthafte Versuch, eine Aktualisierung meiner Kenntnisse über die Programmierung eine up-to-date-Sprache und OOP.
Check stackoverflow.com/a/10018406/1241400
InformationsquelleAutor Tobias | 2013-09-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fügen Sie die
SelectList
zu Ihrem Modell:bauen die Klasse für die Sammlung:
und dann in deinem controller, laden Sie die Daten für die
MyListTable
Klasse aus der Datenbank:und dann schließlich, Sie benötigen, senden Sie Ihr Modell zur Ansicht:
Nun in der Razor-Sie können die Anzeige dieser:
Sie können natürlich Namen diese Dinge besser Namen, aber Sie bekommen die Idee.
Sie müssen nicht mit der Datenbank verbinden, die gleiche Weise, die ich tun. Ich bin nur geben Ihnen ein Beispiel. Du bist nicht in der Lage sein, kopieren Sie einfach und fügen Sie diese Lösung, müssen Sie es in passen natürlich bin ich nicht schreiben Ihre software - nur helfen Sie mit, dieses Problem - so es gibt keine Möglichkeit, den code einfach passen.
die gleiche Art und Weise erhalten Sie alle Zeilen aus einer Tabelle mit einem
DbContext
. Sie Zugriff auf die Eigenschaft ist verfügbar, für die Tabelle. Wie ich schon sagte, Sie müssen passen. Sie könnten in der Lage sein, um loszuwerden, dasMyListTable
Klasse, weil Sie eineDbContext
. Sie könnte senden Sie eineList
von denen in derSelectList
Klasse und verwenden verschiedene Schlüssel-und display-Felder. Suchen Sie die API ' s und lernen, Sie verstehen auf einer abstrakten Ebene.Ich verstehe das, aber die SQL-Abfrage, die Sie wrute.. Wie ich schrieb in meinem Antrag, das ist nicht der Weg, du hast es geschafft. Ich denke, ich bin einfach nur dumm nicht zu haben es herausgefunden noch.
+1 Große und detaillierte. Ich habe versucht alles zu bevölkern, DDL-und post ausgewählte Wert im Controller. Alles Weg vergeblich, bis ur-Lösung. Danke Mann
InformationsquelleAutor Mike Perrenoud
Gibt es eine tolle Antworten schon, aber Hier ist ein anderer Ansatz.
Verwenden Sie
user
als ModellListUserViewModel
als view-Modell undUserController
als der Controller. Die Arbeit der view- - Modell ist zu tragen, alle Informationen benötigt, um auf der Seite angezeigt werden von der Steuerung ohne unerwünschte Eigenschaften in der model-Klasse. In Ihrem Fall Liste von Benutzern aus einer Datenbank in der Dropdown-Liste.Modell:
View-Modell
Controller
Nun verwenden ListUserViewModel statt der Benutzer in der Ansicht als Modell
und drop-down -
Erklärung:
Erstellen Sie Dropdown-Liste für Benutzer mit
Model.Users
als select-Liste Datenquelle."user_id"
als Wert für den ausgewählten Benutzer und"name"
als Beschriftung anzeigen. das Letzte argument( ich habe leere Zeichenfolge" "
) ist ein Standard Wert, der in der drop-down angezeigt wird, bevor die Auswahl.Ich hoffe, dies wird Ihnen helfen, oder jemand anderes.
InformationsquelleAutor Aim
Versuchen, diese,
Modell
Controller-Methode, die die Liste füllen
Drop-down-Liste in der Ansicht
InformationsquelleAutor Jeet Bhatt
Wenn Sie wirklich neu ASP.Net MVC, dies ist eine Recht gute Anleitung, die Ihnen zeigt, wie das MVC-Pattern arbeitet.
MVC3: http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/cs/intro-to-aspnet-mvc-3
MVC4: http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet-mvc-4
Hier ist der Beispiel-code zum download: http://code.msdn.microsoft.com/Introduction-to-MVC-3-10d1b098
dies ist eine hilfreiche video: http://www.asp.net/mvc/videos/mvc-1/conference-presentations/creating-nerddinnercom-with-microsoft-aspnet-model-view-controller-mvc
InformationsquelleAutor Tobias
dies ist meine Tabelle in der Datenbank
schauen Sie meine Aktion controller
und in der Ansicht
Konstruktor die ich benutzt habe ist
diese Zeile
Request.QueryString["LetterStatus"]
weil ich senden Sie die Ausgewählten Elemente inQuerySrting
und basiert auf
CurrentCulture
wählte ich, welche Spalte angezeigt werdenund das Ergebnis sind
aber ich denke, der beste Weg, dies zu tun,,,, ist zu bekommen, oder erstellen Sie die Elemente iteriere werfen Sie zu erzeugen, um die select-tag manuell. Ich beschrieb diesen Ansatz auch in diese Antwort
hoffe, dies hilft Ihnen
InformationsquelleAutor Basheer AL-MOMANI
Ich finde dieses system funktioniert (und vermeidet die Verwendung von ViewBag):
View Modell:
Controller:
und in der Ansicht:
InformationsquelleAutor RickL