ASP.NET Razor - C# en VB code syntax

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

Hoofdregels van de Razor-syntaxis in C#

  • Razor-code wordt omgeven door @{ ... }
  • In-line expressies (variabelen en functies) beginnen met @
  • Codezinnen eindigen met een puntkomma
  • Stringen worden omgeven door aanhalingstekens
  • C#-code is gevoelig voor hoofd- en kleine letters
  • De extensie van C#-bestanden is .cshtml

C# voorbeeld

<!-- Enkele regel codeblok -->
@{ var myMessage =	"Hello World"; }
<!-- In-line expressie of variabele -->
<p>De waarde van mijn bericht is: @myMessage</p> 
<!-- Meerdere regels codeblok -->
@{
var greeting = "Welcome to our site!";
var weekDay = DateTime.Now.DayOfWeek;
var greetingMessage = greeting + " Hier in Huston is het: " + weekDay;
}
<p>De groet is: @greetingMessage</p>

运行实例

Hoofdregels van de Razor-syntaxis in VB

  • Razor-codeblokken worden omringd door @Code ... End Code
  • In-line expressies (variabelen en functies) beginnen met @
  • Variabelen worden gedeclareerd met de Dim-sleutelwoord
  • Stringen worden omgeven door aanhalingstekens
  • VB is niet gevoelig voor hoofd- en kleine letters
  • De extensie van VB-bestanden is .vbhtml

实例

<!-- Enkele regel codeblok -->
@Code dim myMessage = "Hello World" End Code
<!-- In-line expressie of variabele -->
<p>De waarde van mijn bericht is: @myMessage</p> 
<!-- Meerdere regels codeblok -->
@Code
dim greeting = "Welcome to our site!" 
dim weekDay = DateTime.Now.DayOfWeek 
dim greetingMessage = greeting & " Hier in Huston is het: " & weekDay
Einde Code 
<p>De groet is: @greetingMessage</p>

运行实例

Hoe werkt het?

Razor is een eenvoudige programmeertaal die wordt gebruikt om server-side code in webpagina's in te voegen.

Razor syntaxis is gebaseerd op het ASP.NET-frameswerk, een onderdeel van Microsofts .NET-frameswerk dat speciaal is ontworpen voor de ontwikkeling van webtoepassingen.

Razor syntaxis biedt je alle mogelijkheden van ASP.NET, maar met een vereenvoudigde syntaxis, zodat beginners het gemakkelijker kunnen leren en experts hun productiviteit kunnen verhogen.

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

Wanneer de server deze pagina's leest, wordt de Razor-code eerst uitgevoerd voordat de HTML-pagina naar de browser wordt gestuurd. Deze op de server uitgevoerde code kan taken uitvoeren die niet in de browser kunnen worden uitgevoerd, zoals toegang tot de serverdatabase. Servercode kan dynamische HTML-inhoud maken voordat de pagina naar de browser wordt gestuurd. Vanuit het perspectief van de browser is de HTML gegenereerd door de servercode niet te onderscheiden van statische HTML-inhoud.

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

Omgaan met objecten

Servercode omvat vaak objecten.

"Date"-object is een typisch ingebouwd ASP.NET-object, maar je kunt ook zelf objecten definiëren, zoals een webpagina, een tekstvak, een bestand, of een database record, enz.

Objecten kunnen methoden hebben die ze kunnen uitvoeren. Database records kunnen een 'Opslaan'-methode bieden, een afbeeldingsobject kan een 'Draai'-methode hebben, een e-mailobject kan een 'Verstuur'-methode bieden, enz.

Objecten kunnen ook eigenschappen hebben die hun kenmerken beschrijven. Database records kunnen eigenschappen zoals FirstName en LastName hebben.

De ASP.NET Date-object heeft een Now-eigenschap (geschreven als Date.Now), de Now-eigenschap heeft een Day-eigenschap (geschreven als Date.Now.Day). Hier is een voorbeeld van hoe je toegang kunt krijgen tot bepaalde eigenschappen van het Date-object:

实例

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

运行实例

If en Else voorwaarden

Een belangrijke kenmerkende eigenschap van dynamische webpagina's is het uitvoeren van acties op basis van voorwaarden.

Om dit te bereiken, wordt meestal een if ... else-statement gebruikt:

实例

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

运行实例

读取用户输入

动态网页的另一个重要特性是读取用户的输入。

通过 Request[] 函数读取输入,并由 IsPost 条件进行测试:

实例

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

运行实例