Razor поддерживает как C# (до-диез), так и VB (Visual Basic).
В этом разделе объясняются правила синтаксиса Razor C# и Razor VB.
Блоки кода Razor заключены в @{ ... }
Встроенные выражения (переменные и функции) начинаются с @.
Завершайте операторы кода точкой с запятой
Переменные объявляются с использованием ключевого слова var.
Строки, заключенные в кавычки
Код C# чувствителен к регистру
Расширение файла C# — .cshtml.
<!-- Одиночный блок операторов --> @{ var myMessage = "Hello World" }; <!-- Встроенное выражение или переменная --> <p>Значение myMessage: @myMessage </p> <!-- Блок с несколькими операторами --> @{var Greeting = "Добро пожаловать на наш сайт!";var WeekDay = DateTime.Now.DayOfWeek;var GreetingMessage = Greeting + " Здесь, в Хьюстоне, это: " +День недели;} <p>Приветствие: @greetingMessage </p>
Блоки кода Razor заключены в @Code... Конечный код
Встроенные выражения (переменные и функции) начинаются с @.
Переменные объявляются с использованием ключевого слова Dim.
Строки, заключенные в кавычки
Код VB не чувствителен к регистру
Расширение файлов VB — .vbhtml.
<!-- Блок с одним оператором --> @Code dim myMessage = Конечный код "Hello World" <!-- Встроенное выражение или переменная --> <p>Значение myMessage: @myMessage </p> <!-- Блок с несколькими операторами --> @Codedim Greeting = "Добро пожаловать на наш сайт!" dim WeekDay = DateTime.Now.DayOfWeek dim GreetingMessage = Greeting & " Здесь, в Хьюстоне, это: " & WeekDayEnd Code <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).
Серверное кодирование часто включает в себя объекты. Объект «Дата» — это типичный встроенный объект ASP.NET, но объект также может быть пользовательским, веб-страницей, текстовым полем, файлом, записью базы данных и т. д. У объектов есть методы выполнения. Запись базы данных может иметь метод «Сохранить», объект изображения может иметь метод «Повернуть», объект электронной почты может иметь метод «Отправить» и так далее. Объекты также имеют свойства, описывающие их характеристики. Запись базы данных может иметь свойства FirstName и LastName.
Объект ASP.NET Date имеет свойство Now (записанное как Date.Now), а свойство Now имеет свойство Day (записанное как Date.Now.Day). В следующем примере показано, как получить доступ к некоторым свойствам объекта Data:
<table> <tr> <th>Имя</th> <td>Значение</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:
@{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 = "Итого = " + всего;}} <html> <body style="background-color: beige; font-family: Verdana, Arial;"> <form action="" метод="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>