Razor unterstützt sowohl C# (Cis) als auch VB (Visual Basic).
In diesem Abschnitt werden die Syntaxregeln von Razor C# und Razor VB erläutert.
Razor-Codeblöcke sind in @{ ... } eingeschlossen
Inline-Ausdrücke (Variablen und Funktionen) beginnen mit @
Beenden Sie Codeanweisungen mit einem Semikolon
Variablen werden mit dem Schlüsselwort var deklariert
In Anführungszeichen eingeschlossene Zeichenfolgen
Bei C#-Code wird die Groß-/Kleinschreibung beachtet
Die C#-Dateierweiterung ist .cshtml
<!-- Einzelner Anweisungsblock --> @{ var myMessage = "Hello World" } <!-- Inline-Ausdruck oder Variable --> <p>Der Wert von myMessage ist: @myMessage </p> <!-- Block mit mehreren Anweisungen --> @{var Greeting = "Willkommen auf unserer Website!";var WeekDay = DateTime.Now.DayOfWeek;var GreetingMessage = Greeting + " Hier in Huston ist es: " + Wochentag;} <p>Die Begrüßung lautet: @greetingMessage </p>
Razor-Codeblöcke sind in @Code ... End Code eingeschlossen
Inline-Ausdrücke (Variablen und Funktionen) beginnen mit @
Variablen werden mit dem Schlüsselwort Dim deklariert
In Anführungszeichen eingeschlossene Zeichenfolgen
Beim VB-Code wird die Groß-/Kleinschreibung nicht beachtet
Die Erweiterung für VB-Dateien ist .vbhtml
<!-- Einzelner Anweisungsblock --> @Code dim myMessage = „Hello World“ Endcode <!-- Inline-Ausdruck oder Variable --> <p>Der Wert von myMessage ist: @myMessage </p> <!-- Block mit mehreren Anweisungen --> @Codedim Greeting = „Willkommen auf unserer Website!“ dim WeekDay = DateTime.Now.DayOfWeek dim GreetingMessage = Greeting & „Hier in Huston ist es:“ & WeekDayEnd Code <p>Die Begrüßung lautet: @greetingMessage </p>
Razor ist eine einfache Programmiersyntax zum Einbetten von Servercode in Webseiten.
Die Razor-Syntax basiert auf dem ASP.NET-Framework, einem Teil des Microsoft .NET-Frameworks, der speziell für die Erstellung von Webanwendungen entwickelt wurde.
Die Razor-Syntax unterstützt alle Funktionen von ASP.NET, verwendet jedoch eine vereinfachte Syntax, die für Anfänger einfacher zu erlernen und für Experten effizienter ist.
Eine Razor-Webseite kann als HTML-Webseite mit zwei Arten von Inhalten beschrieben werden: HTML-Inhalt und Razor-Code.
Wenn der Server die Seite liest, führt er zunächst den Razor-Code aus, bevor er die HTML-Seite an den Browser sendet. Auf dem Server ausgeführter Code kann Aufgaben ausführen, die im Browser nicht ausgeführt werden können, beispielsweise der Zugriff auf die Serverdatenbank. Servercode kann dynamische HTML-Inhalte erstellen und an den Browser senden. Aus Browsersicht unterscheidet sich der vom Servercode generierte HTML-Code nicht von statischen HTML-Inhalten.
ASP.NET-Webseiten mit Razor-Syntax haben spezielle Dateierweiterungen cshtml (Razor C#) oder vbhtml (Razor VB).
Bei der Servercodierung handelt es sich häufig um Objekte. Das „Date“-Objekt ist ein typisches integriertes ASP.NET-Objekt, das Objekt kann jedoch auch ein benutzerdefiniertes Objekt, eine Webseite, ein Textfeld, eine Datei, ein Datenbankeintrag usw. sein. Objekte verfügen über Methoden zur Ausführung. Ein Datenbankeintrag könnte eine „Speichern“-Methode haben, ein Bildobjekt könnte eine „Rotieren“-Methode haben, ein E-Mail-Objekt könnte eine „Senden“-Methode haben und so weiter. Objekte haben auch Eigenschaften, die ihre Eigenschaften beschreiben. Ein Datenbankeintrag kann die Eigenschaften FirstName und LastName haben.
Das ASP.NET Date-Objekt verfügt über eine Now-Eigenschaft (geschrieben als Date.Now) und die Now-Eigenschaft verfügt über eine Day-Eigenschaft (geschrieben als Date.Now.Day). Das folgende Beispiel zeigt, wie auf einige Eigenschaften des Datenobjekts zugegriffen wird:
<table> <tr> <th>Name</th> <td>Wert</td> </tr> <tr> <td>Tag</td><td>@DateTime.Now.Day </td> </tr> <tr> <td>Stunde</td><td>@DateTime.Now.Hour </td> </tr> <tr> <td>Minute</td><td>@DateTime.Now.Minute </td> </tr> <tr> <td>Second</td><td>@DateTime.Now.Second </td> </tr> </td> </table>
Ein wichtiges Merkmal dynamischer Webseiten besteht darin, dass Sie anhand der Bedingungen entscheiden können, was zu tun ist.
Eine übliche Methode hierfür ist die Verwendung von if ... else-Anweisungen:
@{var txt = "";if(DateTime.Now.Hour > 12){txt = "Guten Abend";}else{txt = "Guten Morgen";}} <html> <body> <p>Die Nachricht ist @txt </p> </body> </html>
Ein weiteres wichtiges Merkmal dynamischer Webseiten besteht darin, dass Sie Benutzereingaben lesen können.
Die Eingabe wird über die Funktion Request[] gelesen und die Eingabedaten werden über die IsPost-Bedingung übertragen:
@{var totalMessage = "";if(IsPost){var num1 = Request["text1"];var num2 = Request["text2"];var total = num1.AsInt() + num2.AsInt();totalMessage = "Total = " + total;}} <html> <body style="background-color: beige; font-family: Verdana, Arial;"> <form action="" method="post"> <p><label for="text1">Erste Zahl: </label><br> <input type="text" name="text1" /></p> <p><label for="text2">Zweite Zahl:</label><br> <input type= "text" name="text2" /></p> <p><input type="submit" value=" Add " /></p> </form> <p>@totalMessage </p> </body> </html>