ASP.NET Razor - синтаксис кода C# и VB


Razor поддерживает как C# (C sharp), так и VB (Visual Basic).


Основные правила синтаксиса Razor C#

  • Блоки кода Razor заключены в @{ ... }
  • Встроенные выражения (переменные и функции) начинаются с @
  • Операторы кода заканчиваются точкой с запятой
  • Переменные объявляются с помощью ключевого слова var
  • Строки заключаются в кавычки
  • Код C# чувствителен к регистру
  • Расширение файлов C# — .cshtml

Пример C#

<!-- Блок с одним оператором -->
@{ var myMessage = "Hello World"; }

<!-- Встроенное выражение или переменная -->
<p>Значение myMessage равно: @myMessage</p>

<!-- Блок с несколькими операторами -->
@{
var greeting = "Welcome to our site!";
var weekDay = DateTime.Now.DayOfWeek;
var greetingMessage = greeting + " Здесь, в Хьюстоне, сейчас: " + weekDay;
}

<p>Приветствие: @greetingMessage</p>

Запустить пример »


Основные правила синтаксиса Razor VB

  • Блоки кода Razor содержатся в @Code ... End Code
  • Встроенные выражения (переменные и функции) начинаются с @
  • Переменные объявляются с помощью ключевого слова Dim
  • Строки заключаются в кавычки
  • Код VB не чувствителен к регистру
  • Расширение файлов VB — .vbhtml

Пример

<!-- Блок с одним оператором -->
@Code dim myMessage = "Привет, мир" End Code

<!-- Встроенное выражение или переменная -->
<p>Значение myMessage равно: @myMessage</p>

<!-- Блок с несколькими операторами -->
@Code
dim greeting = "Добро пожаловать на наш сайт!"
dim weekDay = DateTime.Now.DayOfWeek
dim greetingMessage = greeting & " Here in Huston it is: " & weekDay
Конец кода


<p>Приветствие: @greetingMessage</p>

Запустить пример »


Как это работает?

Razor — это простой синтаксис программирования для встраивания серверного кода в веб-страницы.

Синтаксис Razor основан на платформе ASP.NET — части платформы Microsoft.NET, специально предназначенной для создания веб-приложений.

Синтаксис Razor поддерживает все возможности ASP.NET, но использует упрощённый синтаксис, который легче изучать новичкам и эффективнее для опытных разработчиков.

Веб-страницы Razor можно описать как HTML-страницы со следующим содержимым двух типов: HTML-содержимым и кодом Razor.

Когда сервер читает страницу, он сначала выполняет код Razor, а затем отправляет HTML-страницу в браузер. Код, выполняемый на сервере, может решать задачи, которые невозможно выполнить в браузере, например обращаться к серверным базам данных. Серверный код может создавать динамическое HTML-содержимое и затем отправлять его в браузер. С точки зрения браузера HTML, созданный серверным кодом, ничем не отличается от статического HTML-содержимого.

Веб-страницы ASP.NET с синтаксисом Razor имеют специальные расширения файлов cshtml (Razor C#) или vbhtml (Razor VB).


Использование объектов

Серверное программирование часто связано с объектами.

Объект "Date" — типичный встроенный объект ASP.NET, но объекты также могут быть пользовательскими: веб-страница, текстовое поле, файл, запись базы данных и так далее.

У объектов есть методы для выполнения. Запись базы данных может иметь метод "Save", объект изображения — метод "Rotate", объект электронной почты — метод "Send" и т. д.
У объектов также есть свойства, описывающие их характеристики. Запись базы данных может иметь свойства FirstName и LastName.

Объект Date в ASP.NET имеет свойство Now (записывается как Date.Now), а свойство Now имеет свойство Day (записывается как Date.Now.Day). В приведённом ниже примере показано, как получить доступ к некоторым свойствам объекта Date:

Пример

<table border="1">
<tr>
<th width="100px">Имя</th>
<td width="100px">Значение</td>
</tr>
<tr>
<td>День</td><td>@DateTime.Now.Day</td>
</tr>
<tr>
<td>Час</td><td>@DateTime.Now.Hour</td>
</tr>
<tr>
<td>Минута</td><td>@DateTime.Now.Minute</td>
</tr>
<tr>
<td>Секунда</td><td>@DateTime.Now.Second</td>
</tr>
</td>
</table>

Запустить пример »


Условия if и else

Важной особенностью динамических веб-страниц является возможность выбирать действия в зависимости от условий.

Обычный способ сделать это — использовать оператор if ... else:

Пример

@{
var txt = "";
if(DateTime.Now.Hour > 12)
{txt = "Добрый вечер";}
else
{txt = "Доброе утро";}
}
<html>
<body>
<p>Сообщение: @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 = "Итого = " + total;
}
}

<html>
<body style="background-color: beige; font-family: Verdana, Arial;">
<form action="" method="post">
<p><label for="text1">Первое число:</label><br>
<input type="text" name="text1" /></p>
<p><label for="text2">Второе число:</label><br>
<input type="text" name="text2" /></p>
<p><input type="submit" value=" Добавить " /></p>
</form>
<p>@totalMessage</p>
</body>
</html>

Запустить пример »

Другие расширения