ASP.NET Razor — składnia kodu C# i VB
Razor obsługuje zarówno C# (C ostry), jak i VB (Visual Basic).
Główne reguły składni Razor dla C#
- Bloki kodu brzytwy są zawarte w @{ ... }
- Wyrażenia wbudowane (zmienne i funkcje) zaczynają się od @
- Instrukcje kodu kończą się średnikiem
- Zmienne są deklarowane za pomocą słowa kluczowego var
- Ciągi znaków są ujęte w cudzysłów
- W kodzie C# rozróżniana jest wielkość liter
- Pliki C# mają rozszerzenie .cshtml
Przykład C#
<!-- 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>
Główne zasady składni Razor dla VB
- Bloki kodu brzytwy są zawarte w @Code ... End Code
- Wyrażenia wbudowane (zmienne i funkcje) zaczynają się od @
- Zmienne są deklarowane za pomocą słowa kluczowego Dim
- Ciągi znaków są ujęte w cudzysłów
- W kodzie VB nie jest rozróżniana wielkość liter
- Pliki VB mają rozszerzenie .vbhtml
Przykład
<!-- 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>
Jak to działa?
Razor to prosta składnia programowania służąca do osadzania kodu serwera na stronach internetowych.
Składnia Razor jest oparta na platformie ASP.NET, części platformy Microsoft.NET Framework, która została specjalnie zaprojektowana do tworzenia aplikacji internetowych.
Składnia Razor zapewnia wszystkie możliwości ASP.NET, ale używa uproszczonej składni, która jest łatwiejsza do nauczenia, jeśli jesteś początkującym i zwiększa produktywność, jeśli jesteś ekspertem.
Strony internetowe Razor można opisać jako strony HTML z dwoma rodzajami zawartości: zawartością HTML i kodem Razor.
Gdy serwer odczytuje stronę, najpierw uruchamia kod Razor, zanim wyśle stronę HTML do przeglądarki. Kod wykonywany na serwerze może wykonywać zadania, których nie można wykonać w przeglądarce, na przykład dostęp do bazy danych serwera. Kod serwera może tworzyć dynamiczną zawartość HTML w locie, zanim zostanie wysłany do przeglądarki. Widziany z przeglądarki, kod HTML generowany przez kod serwera nie różni się od statycznej zawartości HTML.
Strony sieci Web ASP.NET ze składnią Razor mają specjalne rozszerzenie pliku cshtml (Razor przy użyciu C#) lub vbhtml (Razor przy użyciu VB).
Praca z obiektami
Kodowanie serwera często obejmuje obiekty.
Obiekt „DateTime” jest typowym wbudowanym obiektem ASP.NET, ale obiekty mogą być również samodzielnie definiowane, jak strona internetowa, pole tekstowe, plik, rekord bazy danych itp.
Obiekty mogą mieć metody, które mogą wykonywać. Rekord bazy danych może mieć metodę „Zapisz”, obiekt obrazu może mieć metodę „Obróć”, obiekt wiadomości e-mail może mieć metodę „Wyślij” i tak dalej.
Obiekty posiadają również właściwości opisujące ich cechy. Rekord bazy danych może mieć właściwości FirstName i LastName (między innymi).
Obiekt DateTime ASP.NET ma właściwość Now (zapisaną jako DateTime.Now), a właściwość Now ma właściwość Day (zapisaną jako DateTime.Now.Day). Poniższy przykład pokazuje, jak uzyskać dostęp do niektórych właściwości obiektu DateTime:
Przykład
<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>
Jeśli i inne warunki
Ważną cechą dynamicznych stron internetowych jest to, że możesz określić, co zrobić na podstawie warunków.
Najczęstszym sposobem na to jest użycie instrukcji if ... else:
Przykład
@{
var txt = "";
if(DateTime.Now.Hour > 12)
{txt = "Good Evening";}
else
{txt = "Good Morning";}
}
<html>
<body>
<p>The message is @txt</p>
</body>
</html>
Odczytywanie danych wprowadzonych przez użytkownika
Inną ważną cechą dynamicznych stron internetowych jest możliwość odczytywania danych wprowadzanych przez użytkownika.
Wejście jest odczytywane przez funkcję Request[], a księgowanie (dane wejściowe) jest testowane przez warunek IsPost:
Przykład
@{
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>