ASP.NET Razor - C# und VB-Code-Syntax

Razor unterstützt gleichzeitig C# (C sharp) und VB (Visual Basic).

Hauptregeln der Razor-Syntax in C#

  • Razor-Code wird in @{ ... } eingeschlossen
  • Inline- Ausdrücke (Variablen und Funktionen) beginnen mit @
  • Code-Anweisungen enden mit einem Semikolon
  • Zeichenfolgen werden durch Anführungszeichen umgeben
  • C#-Code ist groß- und kleinschreibungsabhängig
  • Die Dateierweiterung für C#-Dateien ist .cshtml

C# Beispiel

<!-- Einzeiliger Code-Block -->
@{ var myMessage =	"Hello World"; }
<!-- Inline-Expressionen oder Variablen -->
<p>Der Wert von myMessage ist: @myMessage</p> 
<!-- Mehrzeiliger Code-Block -->
@{
var greeting = "Willkommen auf unserer Seite!";
var weekDay = DateTime.Now.DayOfWeek;
var greetingMessage = greeting + " Hier in Huston ist es: " + weekDay;
}
<p>Die Begrüßung ist: @greetingMessage</p>

Funktion befehlen

Hauptregeln der Razor-Syntax in VB

  • Razor-Code-Blöcke werden durch @Code ... End Code umgeben
  • Inline- Ausdrücke (Variablen und Funktionen) beginnen mit @
  • Variablen werden mit dem Schlüsselwort Dim declared
  • Zeichenfolgen werden durch Anführungszeichen umgeben
  • VB ist groß- und kleinschreibungsunempfindlich
  • Die Dateierweiterung für VB-Dateien ist .vbhtml

Beispiel

<!-- Einzeiliger Code-Block -->
@Code dim myMessage = "Hello World" End Code
<!-- Inline-Expressionen oder Variablen -->
<p>Der Wert von myMessage ist: @myMessage</p> 
<!-- Mehrzeiliger Code-Block -->
@Code
dim greeting = "Willkommen auf unserer Seite!" 
dim weekDay = DateTime.Now.DayOfWeek 
dim greetingMessage = greeting & " Hier in Huston ist es: " & weekDay
Code beenden 
<p>Die Begrüßung ist: @greetingMessage</p>

Funktion befehlen

Wie funktioniert es?

Razor ist eine einfache Programmiersyntax, die verwendet wird, um Serverseitigen Code in Webseiten einzubinden.

Razor-Syntax basiert auf dem ASP.NET-Framework, das ein Bestandteil der .NET-Framework von Microsoft ist, der speziell für die Entwicklung von Webanwendungen konzipiert wurde.

Razor-Syntax gewährt Ihnen alle Fähigkeiten von ASP.NET, verwendet jedoch eine vereinfachte Syntax, die für Anfänger einfacher zu erlernen und für Experten produktiverer ist.

Razor-Webseiten können als HTML-Seiten mit zwei Arten von Inhalten beschrieben werden: HTML-Inhalten und Razor-Code.

Wenn der Server diese Seite liest, wird vor dem Senden der HTML-Seite an den Browser zunächst der Razor-Code ausgeführt. Diese auf dem Server ausgeführten Codes können Aufgaben erledigen, die im Browser nicht ausgeführt werden können, wie den Zugriff auf die Serverdatenbank. Servercode kann dynamische HTML-Inhalte erstellen, die vor dem Senden der Seite an den Browser. Für den Browser ist der von Servercode generierte HTML nicht von statischem HTML zu unterscheiden.

ASP.NET-Webseiten mit Razor-Syntax haben eine spezielle Dateierweiterung cshtml (mit der Razor-Syntax in C#) oder vbhtml (mit der Razor-Syntax in VB).

Mit Objekten arbeiten

Servercode beinhaltet oft Objekte.

"Date"-Objekte sind typische ASP.NET-integrierte Objekte, aber man kann auch selbstdefinierte Objekte erstellen, wie eine Webseite, ein Textfeld, eine Datei oder eine Datenbankzeile usw.

Objekte können Methoden haben, die sie ausführen können. Datenbankzeilen können eine "Speichern"-Methode bereitstellen, ein Bildobjekt kann eine "Drehen"-Methode haben, ein E-Mail-Objekt kann eine "Senden"-Methode bereitstellen und so weiter.

Objekte können auch Eigenschaften haben, die ihre Merkmale beschreiben. Datenbankzeilen können die Eigenschaften FirstName und LastName haben.

Das ASP.NET-Datumobjekt verfügt über die Now-Eigenschaft (geschrieben als Date.Now), die über die Day-Eigenschaft verfügt (geschrieben als Date.Now.Day). Nachfolgendes Beispiel zeigt, wie man auf bestimmte Eigenschaften des Datumobjekts zugreift:

Beispiel

<table border="1">
<tr>
<th width="100px">Name</th>
<td width="100px">Value</td>
</tr>
<tr>
<td>Day</td><td>@DateTime.Now.Day</td>
</tr>
<tr>
<td>Hour</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>

Funktion befehlen

Bedingungen If und Else

Eine wichtige Eigenschaft dynamischer Webseiten ist die basierend auf Bedingungen festgelegte Ausführung von Aktionen.

Um dies zu erreichen, wird in der Regel ein if ... else -Statement verwendet:

Beispiel

@{
var txt = "";
if(DateTime.Now.Hour > 12)
  {txt = "Guten Abend";}
else
  {txt = "Guten Morgen";}
}
<html>
<body>
<p>Nachricht ist @txt</p>
</body>
</html>

Funktion befehlen

Benutzerinput lesen

Eine weitere wichtige Eigenschaft dynamischer Webseiten ist das Lesen der Eingaben des Benutzers.

von der Funktion Request[] gelesen und durch die Bedingung IsPost getestet:

Beispiel

@{
var totalMessage = "";
if(IsPost)
    {
    var num1 = Request["text1"];
    var num2 = Request["text2"];
    var total = num1.AsInt() + num2.AsInt();
    totalMessage = "Gesamt = " + total;
    }
}
<html>
<body style="background-color: beige; font-family: Verdana, Arial;">
<form action="" method="post">
<p><label for="text1">Erste Zahl:</label><br>
<p><input type="text" name="text1" /></p>
<p><label for="text2">Zweite Zahl:</label><br>
<p><input type="text" name="text2" /></p>
<p><input type="submit" value="Hinzufügen" /></p>
</form>
<p>@totalMessage</p>
</body>
</html>

Funktion befehlen