ASP.NET Razor - C#- en VB-codesyntaxis


Razor ondersteunt zowel C# (C sharp) als VB (Visual Basic).


Belangrijkste Razor-syntaxisregels voor C#

  • Razor-codeblokken zijn ingesloten in @{ ... }
  • Inline-expressies (variabelen en functies) beginnen met @
  • Code-instructies eindigen met een puntkomma
  • Variabelen worden gedeclareerd met het var trefwoord
  • Strings staan ​​tussen aanhalingstekens
  • C#-code is hoofdlettergevoelig
  • C#-bestanden hebben de extensie .cshtml

C# Voorbeeld

<!-- Single statement block -->
@{ var myMessage = "Hello World"; }

<!-- Inline expression or variable -->
<p>The value of myMessage is: @myMessage</p>

<!-- Multi-statement block -->
@{
var greeting = "Welcome to our site!";
var weekDay = DateTime.Now.DayOfWeek;
var greetingMessage = greeting + " Here in Huston it is: " + weekDay;
}

<p>The greeting is: @greetingMessage</p>

Belangrijkste Razor-syntaxisregels voor VB

  • Razor-codeblokken zijn ingesloten in @Code ... End Code
  • Inline-expressies (variabelen en functies) beginnen met @
  • Variabelen worden gedeclareerd met het Dim-sleutelwoord
  • Strings staan ​​tussen aanhalingstekens
  • VB-code is niet hoofdlettergevoelig
  • VB-bestanden hebben de extensie .vbhtml

Voorbeeld

<!-- Single statement block  --> 
@Code dim myMessage = "Hello World" End Code
 
<!-- Inline expression or variable --> 
<p>The value of myMessage is: @myMessage</p> 
 
<!-- Multi-statement block --> 
@Code
dim greeting = "Welcome to our site!" 
dim weekDay = DateTime.Now.DayOfWeek 
dim greetingMessage = greeting & " Here in Huston it is: " & weekDay
End Code


<p>The greeting is: @greetingMessage</p>


Hoe werkt het?

Razor is een eenvoudige programmeersyntaxis voor het insluiten van servercode in webpagina's.

Razor-syntaxis is gebaseerd op het ASP.NET-framework, het deel van het Microsoft.NET Framework dat specifiek is ontworpen voor het maken van webapplicaties.  

De Razor-syntaxis geeft u alle kracht van ASP.NET, maar gebruikt een vereenvoudigde syntaxis die gemakkelijker te leren is als u een beginner bent en die u productiever maakt als u een expert bent.

Razor-webpagina's kunnen worden beschreven als HTML-pagina's met twee soorten inhoud: HTML-inhoud en Razor-code.

Wanneer de server de pagina leest, voert hij eerst de Razor-code uit, voordat hij de HTML-pagina naar de browser stuurt. De code die op de server wordt uitgevoerd, kan taken uitvoeren die niet in de browser kunnen worden uitgevoerd, bijvoorbeeld toegang tot een serverdatabase. Servercode kan in een oogwenk dynamische HTML-inhoud creëren, voordat deze naar de browser wordt verzonden. Gezien vanuit de browser is de HTML die wordt gegenereerd door de servercode niet anders dan statische HTML-inhoud.

ASP.NET-webpagina's met Razor-syntaxis hebben de speciale bestandsextensie cshtml (Razor met C#) of vbhtml (Razor met VB).


Werken met objecten

Bij servercodering zijn vaak objecten betrokken.

Het "DateTime"-object is een typisch ingebouwd ASP.NET-object, maar objecten kunnen ook zelfgedefinieerd zijn, een webpagina, een tekstvak, een bestand, een databaserecord, enz.

Objecten kunnen methoden hebben die ze kunnen uitvoeren. Een databaserecord kan een "Save"-methode hebben, een afbeeldingsobject kan een "Rotate"-methode hebben, een e-mailobject kan een "Send"-methode hebben, enzovoort.

Objecten hebben ook eigenschappen die hun kenmerken beschrijven. Een databaserecord kan (onder andere) een FirstName en een LastName-eigenschap hebben.

Het ASP.NET DateTime-object heeft een Now-eigenschap (geschreven als DateTime.Now) en de Now-eigenschap heeft een Day-eigenschap (geschreven als DateTime.Now.Day). In het onderstaande voorbeeld ziet u hoe u toegang krijgt tot bepaalde eigenschappen van het DateTime-object:

Voorbeeld

<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>

Als en anders voorwaarden

Een belangrijk kenmerk van dynamische webpagina's is dat je op basis van voorwaarden kunt bepalen wat je moet doen.

De gebruikelijke manier om dit te doen is met de if ... else statements:

Voorbeeld

@{
var txt = "";
if(DateTime.Now.Hour > 12)
  {txt = "Good Evening";}
else
  {txt = "Good Morning";}
}
<html>
<body>
<p>The message is @txt</p>
</body>
</html>

Gebruikersinvoer lezen

Een ander belangrijk kenmerk van dynamische webpagina's is dat u gebruikersinvoer kunt lezen.

Invoer wordt gelezen door de functie Request [] en posten (invoer) wordt getest door de voorwaarde IsPost:

Voorbeeld

@{
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">First Number:</label><br>
<input type="text" name="text1" /></p>
<p><label for="text2">Second Number:</label><br>
<input type="text" name="text2" /></p>
<p><input type="submit" value=" Add " /></p>
</form>
<p>@totalMessage</p>
</body>
</html>