Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

ASP.NET MVC 5 Grundkurs

Mit Views arbeiten

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Views sind bei ASP.NET MVC (und allgemein bei MVC) für die Ansicht zuständig – also für alles, was im Browser landet. Legen Sie Views an und passen Sie so das Aussehen der Anwendung an, ohne die Logik modifizieren zu müssen.
08:44

Transkript

Von "Hallo Welt" einmal abgesehen, wollen wir natürlich auch richtige HTML-Seiten, vielleicht auch mit dynamischen Daten verwenden. Aus diesem Grund brauchen wir eine View, denn das V in MVC die Views sind eben dafür zuständig die Präsentation zu erledigen. In der Vorlage gibt es bereits einen entsprechenden Vorbau dafür, und zwar die Index-Action Methode, die ein ActionResult zurückliefert, die scheint schon irgendwas mit Views zu tun zu haben, denn wir haben hier er folgenden Code "return View();". Tja, return View, aber mit Klammern, das heißt, auch View ist wieder eine, in dem Fall statische Methode. Rückgabetyp ist ViewResult und ViewResult ist ähnlich wie vorher ContentResult von Typ ActionResult. Und auch hier ist es wieder so, dass wir ein eingebautes Standardverhalten haben, dass wir aber anpassen können. Und das Standardverhalten ist so praktisch, dass man es eigentlich gar nicht so häufig anpassen muss. Deswegen schauen wir uns das mal an. Standardmäßig wird, wenn ich das so Handhabe, die zum Action Methodennamen zugehörige View zurückgegeben. Klingt vielleicht komisch, aber wir sehen das wirkt, wenn wir es im Browser aufrufen. Kann ja nicht funktionieren, wir haben ja noch keine View. Sie haben gesehen durch den HomeController und dessen Anlage wurde hier zwar Ordner Namens "Home" erzeugt im "Views" Folder, aber drin ist da nichts. Aber wenn wir es aufrufen, bekommen wir eine Fehlermeldung. Nicht überraschen, werfen wir da mal ein Blick drauf. Und das Ganze fährt jetzt wieder hoch. Und dann erhalten wir tatsächlich einer Fehlermeldung: Die Ansicht "Index" oder die entsprechende Gestaltungsvorlage wurde nicht gefunden. Ah, okay, das heißt also, es gibt für die Index-Methode eine Index-Ansicht, eine Index-View. "Ansicht" ist also die deutsche Microsoft Übersetzung für "View". Ich verwende trotzdem den Begriff "View", weil ich fast keinen kenne der von "Ansicht" spricht im Umfeld von ASP.NET MVC. Nun, netterweise sagt die Fehlermeldung auch, wo diese View denn stecken könnte oder wo gesucht wurde, und zwar es wurde gesucht im Ordner "/Views/Home", den haben wir habe gesehen, der wurde schon angelegt. Und dann wurde geschaut, ob dadrin eine Datei "Index.aspx" liegt. Aha, ASP.NET Webforms sieht fast so und in der Tat man kann so eine Art von Webforms Dialekt verwenden oder "ascx", also ein entsprechendes Control und dasselbe wurde dann nochmal gesucht in "/Views/Shared/" und wieder "Index.aspx" , "Index.ascx", viermal nicht fündig geworden, schon mal nicht so toll. Und dann wird es interessant, denn dann werden die Ordner "/Views/Home" und "/Views/Shared/" nochmal durchsucht, und zwar nach "Index.cshtml" und "Index.vbhtml". Ist ein neues Dateiformat und der Dateiname deutet schon so ein bisschen an, es müssen,wohl, irgendwie HTML-Seiten sein, in denen etwas C# oder etwas VB-Code drinsteckt. Ja, und genau so eine Datei werden wir anlegen. Wir verwenden durchgängig "cshtml", das heißt, es wird also, wenn programmiert wird mit so einer Art von C# programmiert und eben diese Datei muss beispielsweise liegen im Ordner "/Views/Home". Aber die liegen wir gar nicht sozusagen manuell in dem Ordner an, wir lassen uns wieder von Visual Studio ein bisschen leiten und helfen, das vermeidet auch ein wenig Tippfehler, und zwar wenn ich mit der rechten Maustaste auf den Namen der Action-Methode klicke, dann kann ich sage "Gehe zu Ansicht" und in dem Fall sucht sich Visual Studio automatisch die passende Ansicht heraus, die verwendet wird, aber ich habe noch keine, also sollte ich eine hinzufügen und das ist gleich der zweite Punkt im Kontextmenü. Also ich füge eine Ansicht hinzu, ich gebe ihr einen Namen, standardmäßig ist das der Name der Methode, das würde ich auch so beibehalten. Und, ja, dann gibt es noch die Möglichkeit eine Vorlage zu verwenden, es gibt so ein paar eingebaute Vorlagen für so ein paar Anwendungsfälle, aktuell noch nicht interessant. Und dann gibt es noch Ansichtsoptionen ein relativ interessanter Aspekt, wenn der Anmeldung mal größer wird, ist ob man eine Layout-Seite verwenden möchte, das heißt, ob man irgendeine Gestaltungsvorlage hat, so eine Art Template, einen äußeren Rahmen möglicherweise, also alle Seiten haben oben ein Logo und unten Impressum Link und deswegen gibt es eine Vorlage, die das vorgibt ähnlich zu Masterseite in ASP.NET Webforms. Wir haben noch keine Layout-Seite, also deaktiviere ich das mal , klick auf "Hinzufügen" Und was dann passiert ist, achten Sie hier auf diesen Ordner "ViewsHome" war leer und jetzt steckt da eine entsprechende Seite drin, Die heißt "Index.cshtml", ist auch gleich geöffnet worden. Und, ja, die ist zunächst gar nicht so interessant, wir haben hier oben so ein, ja, eine Art von Code. Kümmern wir uns zum späteren Zeitpunkt drum und der Rest ist eine HTML-5-Seite, in der noch nichts steht. Wir können natürlich auch hier mal wieder "Hallo Welt" reinschreiben. Und jetzt passiert folgendes: Wenn ich Localhost Port 123 irgendwas aufrufe, dann wird, mangels anderer Angaben, der HomeController verwendet und im HomeController die Index-Methode aufgerufen. Die Index-Methode sagt, okay, gibt einfach die zugehörige View zurück. Das macht diese View-Methode, die statische, gibt einfach die zugehörige View als ViewResult zurück. Was ist die zugehörige View? Na ja, in "/Views /Home" schauen wir, finden dort die Datei "Index.cshtml" und das ist eine simple HTML-Seite. Die Wahrheit steckt im Browser, also starten wir das Ganze. Aufgerufen, /Home/Index und tatsächlich wird wieder "Hallo Welt" ausgegeben, das heißt, die Seite wurde direkt aufgerufen. Und Sie sehen wir haben hier "localhost /Home/Index" wurde also gleich die richtige URL angegeben von Grund aus, wir hatten, ja, die Index-View offen, wenn ich jetzt das einfach mal schließe, das Ganze dann nochmal ausführen, dann landen wir ebenfalls wieder standardmäßig bei /Home/Index, das heißt, Visual Studio probiert relativ intelligent herauszufinden, welche Seite denn die Homepage sozusagen ist, auch auf Basis der Routing-Regeln, wenn ich das entferne und einfach nur "localhost:12373" aufrufen, lande ich trotzdem auf der selben Seite, weil, wie gesagt, gemäß Konfiguration, HomeController, Index-Methode. Und dieses Anlegen von extra einem Controller und extra einer View mag am Anfang bisschen umständlich wirken und nach ein bisschen Aufwand aussehen, aber es geht irgendwann einfach unfassbar schnell von der Hand, das heißt, ich lege einfach eine neue Action-Methode an, kann es sozusagen nennen, wie ich mag, also sagen wir "public ActionResults Test()", dann einfach "return View()", das der erste Schritt, und das ist das Standardvorgehen, gib da noch mehrere Optionen, aber das ist Standardvorgehen dann einfach "Ansicht hinzufügen", Enter oder auf "Hinzufügen" klicken und dann Testseite angeben, starten, fertig. und jetzt sehen wir auch /Home/Test ist die URL, die entsprechend aufgerufen wird, weil es gerade angelegt haben und offen hatten. Ja, und jetzt kommen wir hier zur Testseite. Also auch sehr praktisch. Und abschließend noch als letzte Änderung nur um zu zeigen, was diese View-Methode kann, wir können der View-Methode auch Parameter angeben, beispielsweise den Namen der zugehörigen View. Wenn ich also sage, die Testseite soll jetzt auch die Index-View verwenden. Nun rufe ich das auf und bekomme hier natürlich standardmäßig die Startseite und jetzt gehe ich auf "/Home/Test" und jetzt kommt auch hier "Hallo Welt", weil ich jetzt nicht mehr die Testseite angebe, sondern sozusagen umgeleitet habe auf die View. Und so kann ich sehr sehr einfach Views austauschen. Ein typischer Anwendungsfall würde aussehen, ich probiere das einfach nochmal als Kommentar zur Illustration einzufügen, also wenn wir ein mobilen Browser haben, ich nehme einfach mal an, wir haben irgendeine Variable, die uns das ermittelt, dann machen wir "return View("MobileIndex")" ja, und ansonsten "return View()", da ist die klassische View, so in der Art. Also, ist wunderbar machbar eben auf Basis dieses Frameworks und dieses kompletten MVC-Konzepts. Und so sehen Views aus. Action-Methode im Controller und dann in der Regel return View oder return View und Name einer View und weitere Optionen hängen dann eben auch davon ab, ob wir mit Daten arbeiten, et cetera.

ASP.NET MVC 5 Grundkurs

Machen Sie sich mit den Grundlagen von ASP.NET MVC 5 vertraut und lassen Sie sich in dieser anspruchsvollen Einführung diesen Architekturansatz von Microsoft erläutern.

2 Std. 30 min (20 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!