ASP.NET Razor - грамматика кода на C# и VB
- Предыдущая страница Обзор Razor
- Следующая страница Переменные C# в Razor
Razor поддерживает как C# (C sharp), так и VB (Visual Basic).
Основные правила синтаксиса Razor в C#
- Код Razor заключен в @{ ... }
- Внутренние выражения (переменные и функции) начинаются с @
- Кодовые строки оканчиваются точкой с запятой
- Строки окружены кавычками
- Код C# чувствителен к регистру
- Расширение файла C# - .cshtml
Пример на C#
<!-- Единстрочный блок кода --> @{ var myMessage = "Hello World"; } <!-- Внутренние выражения или переменные --> <p>Значение myMessage: @myMessage</p> <!-- Многострочный блок кода --> @{ var greeting = "Добро пожаловать на наш сайт!"; 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 = "Hello World" End Code <!-- Внутренние выражения или переменные --> <p>Значение myMessage: @myMessage</p> <!-- Многострочный блок кода --> @Code dim greeting = "Добро пожаловать на наш сайт!" dim weekDay = DateTime.Now.DayOfWeek dim greetingMessage = greeting & " Здесь в Хьюстоне сегодня: " & weekDay Конец кода <p>Приветствие: @greetingMessage</p>
Запуск примера
Как это работает?
Razor - это простой языков программирования, используемый для внедрения серверного кода в веб-страницы.
Синтаксис Razor основан на ASP.NET фреймворке, который является составной частью .NET фреймворка Microsoft, специально разработанного для разработки веб-приложений.
Синтаксис Razor предоставляет вам все возможности ASP.NET, но использует упрощенный синтаксис, что делает его более легким для изучения для начинающих и более эффективным для повышения производительности для профессионалов.
Страницы Razor можно описать как HTML-страницы с двумя типами содержимого: HTML-контентом и кодом Razor.
Когда сервер читает такие страницы, перед тем как отправить HTML-страницу в браузер, он сначала запустит код Razor. Эти коды, выполняемые на сервере, могут выполнять задачи, которые не могут быть выполнены в браузере, такие как доступ к серверной базе данных. Серверный код может создавать динамическое HTML-контент до того, как страница будет отправлена в браузер. С точки зрения браузера, HTML, созданный серверным кодом, не отличается от статического HTML-контента.
ASP.NET веб-страницы с использованием синтаксиса Razor имеют специальные расширения файлов cshtml (с использованием синтаксиса Razor на C#) или vbhtml (с использованием синтаксиса Razor на VB).
Обработка объектов
Серверный код часто связан с объектами.
"Date" - это пример встроенного объекта ASP.NET, но можно также определить свои собственные объекты, такие как веб-страница, текстовое поле, файл или запись базы данных, и т.д.
Объекты могут иметь методы, которые они могут выполнять. Записи базы данных могут предоставлять метод "сохранить", объект изображения может иметь метод "поворот", объект электронной почты может предоставлять метод "отправить", и так далее.
Объекты также могут иметь атрибуты, описывающие их характеристики. Записи базы данных могут иметь атрибуты FirstName и LastName.
Объект ASP.NET Date имеет атрибут Now (записывается как Date.Now), у атрибута Now есть атрибут Day (записывается как Date.Now.Day). В следующем примере показано, как можно получить某些 атрибуты объекта Date:
Пример
<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 и 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>
Запуск примера
- Предыдущая страница Обзор Razor
- Следующая страница Переменные C# в Razor