Verstehen, wann und warum Razor Pages zum Einsatz kommen

Abgeschlossen

In dieser Lerneinheit erfahren Sie, wann und warum Razor Pages in Ihrer ASP.NET Core-App zum Einsatz kommen.

Grundlegendes zu Razor Pages und dem Nutzen dieses Produkts

Razor Pages ist ein serverseitiges, seitenbasiertes Programmiermodell zum Entwickeln von Webbenutzeroberflächen mit ASP.NET Core. Razor Pages-Variablen bieten die folgenden Vorteile:

  • Erleichterung des Einstiegs in die Entwicklung dynamischer Web-Apps, da Sie die Benutzeroberflächenlogik lediglich mit einer Kombination aus HTML, CSS und C# definieren müssen.
  • Förderung der Organisation von Dateien nach Funktion zum Vereinfachen der Wartung Ihrer App.
  • Praktisch eine HTML-Datei, in der Sie mit Markup arbeiten, wie Sie es gewohnt sind. Außerdem haben Sie den Vorteil, dass Sie serverseitigen C#-Code mithilfe von Razor-Syntax hinzufügen können.

Razor Pages arbeiten mit einer einfachen Markupsprache namens Razor, mit der sich serverbasierter Code in Webseiten einbetten lässt. Die Razor-Syntax ist eine Kombination aus HTML- und C#-Code, wobei Letzterer für die Logik des dynamischen Seitenrenderings verantwortlich ist. Auf einer Webseite, die die Razor-Syntax nutzt, können sich Clientinhalte und Servercode befinden.

  • Clientinhalte: Diese enthalten die Elemente, die Sie üblicherweise auf Webseiten verwenden. Dazu gehören die HTML-Markupelemente, Formatinformationen wie CSS, eventuell Clientskriptcode wie JavaScript und Nur-Text.
  • Servercode: Razor ermöglicht Ihnen das Hinzufügen von Servercode zu Clientinhalten. Wenn auf der Seite Servercode vorhanden ist, führt der Server diesen zuerst aus, bevor die Seite zum Browser gesendet wird. Durch die Ausführung auf dem Server kann der Code komplexere Aufgaben erledigen als bei ausschließlicher Verwendung von Clientinhalt. Als Beispiel wäre hier der sichere Zugriff auf Datenbanken zu nennen. Besonders wichtig ist, dass sich mit serverseitigem Code Clientinhalte wie z. B. HTML-Markup dynamisch erstellen und zusammen mit statischem HTML-Code, der sich eventuell auf der Seite befindet, an den Browser senden lassen. Aus Perspektive des Browsers unterscheiden sich Clientinhalte, die auf dem Server generiert wurden, nicht von anderen Clientinhalten.

Trennung von Zuständigkeiten im PageModel

Razor Pages erzwingt in der C#-Klasse PageModel die Trennung von Zuständigkeiten für seitenbezogene Dateneigenschaften und Logikvorgänge. Ein Modellobjekt definiert üblicherweise Dateneigenschaften und umfasst sämtliche Logik oder alle Vorgänge, die mit diesen Dateneigenschaften in Verbindung stehen. Ein PageModel hat im Besonderen folgende Aufgaben:

  • Kapseln der Dateneigenschaften und Logikvorgänge, die auf die zugehörige Razor-Seite begrenzt werden
  • Definieren von Seitenhandlern für Anforderungen, die an die Seite gesendet werden, und für Daten, die zum Rendern der Seite genutzt werden

Gründe für den Einsatz von Razor Pages

Verwenden Sie für Ihre ASP.NET Core-App in den folgenden Situationen Razor Pages:

  • Sie möchten eine dynamische Webbenutzeroberfläche mithilfe Ihrer ASP.NET Core-App generieren.
  • Sie bevorzugen einen seitenorientierten Ansatz für die Entwicklung von Web-Apps, bei denen sich Seitenmarkup und PageModel nahe beieinander befinden.
  • Sie möchten, dass Ihre seitenorientierte ASP.NET Core-App Teilansichten nutzt. Dies sind Mechanismen zum Verringern der Duplizierung von gemeinsamem Markup auf der gesamten Website.

Mit Razor Pages können Sie Ihre ASP.NET Core-Seiten besonders einfach verwalten:

  • Die ansichts- bzw. seitenbezogene Logik und die Seiteneigenschaften, die im PageModel einer Razor-Seite definiert sind, können zusammen in einem eigenen Namespace und Verzeichnis gespeichert werden.
  • Gruppen zusammengehöriger Seiten können zusammen in einem eigenen Namespace und Verzeichnis gespeichert werden.

Hinweis

ASP.NET Core unterstützt zum Erstellen von Web-Apps auch das MVC-Muster. Im Modell werden die grundlegenden Verhalten und Daten für die App und ihre Komponenten definiert. Die View (Ansicht) nutzt HTML- und Razor-Syntax zum Bereitstellen der Benutzeroberfläche. Controller ist eine Klasse, die HTTP-Anforderungen empfängt und Benutzeraktionen verarbeitet.

Verwenden Sie ASP.NET Core MVC, wenn Sie Web-Apps mit einer klaren Trennung von Modell, View (Ansicht) und Controller entwickeln möchten.

Razor Pages basiert auf derselben Infrastruktur wie ASP.NET Core MVC. Sowohl Razor Pages als auch MVC können in einer einzigen ASP.NET Core-App verwendet werden. ASP.NET Core MVC wird in diesem Modul allerdings nicht behandelt.

Überprüfen Sie Ihr Wissen

1.

Welche der folgenden Aussagen trifft auf Razor Pages zu?