ASP.NET MVC vorbei Abfrage-Ergebnis vom controller zum view
So drucken Sie das Ergebnis der Abfrage im View-Seite für ASP.NET MVC?
Mein code ist:
public ActionResult Index()
{
var list = from m in db.MenuTables
select m.MenuName;
return View(list);
}
Nun, was soll ich schreiben, drucken das Ergebnis dieser Abfrage in der Seite Anzeigen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Persönlich würde ich bekommen in die Gewohnheit, mit
ViewModels
und dann stark dem schreiben Ihrer Ansicht zu diesem Modell.Den
model
setzen NUR die DATEN, DIE Sie anzeigen möchten. Nichts mehr, nichts weniger.So lässt vermuten u anzeigen möchten, den Namen, Preis und einige andere meta-Daten.
Pseudo-code ...
etc..
Hinweis: ich übersprungen habe einige Fehler überprüfen, etc.
den Punkt -> nur weitergeben, was Sie brauchen.
Zuerst, Sie könnte gehen: WTF! Das ist SOOO viel mehr als die anderen Antworten! Sif will ich mehr code schreiben.
Die beste Antwort, die ich vorschlagen kann, zu den Gedanken, ist, dass im langen Lauf, Sie werden danken, die sich für immer in die Gewohnheit, dies, weil der Blick sollte immer nur wissen über die genaue Daten, die er benötigt. Nichts mehr, nichts weniger. Senden Sie die geringste Menge an Daten bedeutet, Sie haben eine sehr leichte und einfache Ansicht, die Ihren support/Debuggen viel besser. Als Nächstes werden Sie in der Lage, unit-testen Sie Ihre Controller mit viel mehr Intelligenz und Köpfchen, wenn Sie kommen.
GL!
Unter der Annahme, dass
list
ist einIEnumerable
von strings (d.h. der Menüname ist ein string).Ihrer Ansicht nach akzeptieren, das Modell
IEnumerable<string>
und dann aufzählen, es
Ist die erste Sache Sie wollen zu do ist Anruf ToList() oder sonst, Sie könnten möglicherweise die Ausführung derselben SQL-Abfrage mehrmals.
Zweitens, ich würde nicht nur an eine vollständige Liste wie das. Sollten Sie eine ViewModel. Das wird Ihnen erlauben, zu passieren, bis mehr Daten später mit einem kleineren Aufwand.
Nun sind wir auf der Ansicht, Sie müssen das Modell und die Iteration der Tabelle.