Учебники ASP

ГЛАВНАЯ АСП

Учебник по WP

Введение в веб-страницы Веб-страницы Razor Макет веб-страниц Папки веб-страниц Веб-страницы Глобальные Формы веб-страниц Объекты веб-страниц Файлы веб-страниц Базы данных веб-страниц Помощники веб-страниц Веб-страницы Графики веб-страниц Электронная почта веб-страниц Безопасность веб-страниц Публикация веб-страниц Примеры веб-страниц Классы веб-страниц

Бритва ASP.NET

Введение в бритву Синтаксис бритвы Переменные Razor C# Циклы Razor C# Логика Razor C# Переменные Razor VB Циклы Razor VB Логика Бритвы В.Б.

АСП Классик

Введение в ASP Синтаксис ASP ASP-переменные Процедуры ASP Условия ASP Зацикливание ASP ASP-формы Файлы cookie ASP ASP-сеанс ASP-приложение ASP #include ASP Global.asa АСП АЯКС Электронная почта ASP Примеры ASP

Справочник ASP

Функции ASP VB Ключевые слова ASP VB Ответ ASP ASP-запрос ASP-приложение ASP-сеанс ASP-сервер Ошибка ASP Файловая система ASP Текстовый поток ASP ASP-диск ASP-файл Папка ASP Словарь АСП ASP AdRotator ASP BrowserCap Связывание контента ASP Ротатор контента ASP Быстрая ссылка ASP

Учебник по ADO

Введение в ADO АДО Коннект Набор записей ADO Дисплей АДО ADO-запрос Сортировка ADO ADO Добавить Обновление ADO АДО Удалить Демонстрация ADO Ускорение ADO

Объекты АДО

Команда АДО ADO-соединение Ошибка ADO Поле ADO ADO-параметр Свойство АДО ADO-запись Набор записей ADO ADO-поток Типы данных ADO

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


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


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

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

Пример С#

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

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

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

Пример

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


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

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

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

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

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

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

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


Работа с объектами

Серверное кодирование часто включает объекты.

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

Объекты могут иметь методы, которые они могут выполнять. Запись базы данных может иметь метод «Сохранить», объект изображения может иметь метод «Поворот», объект электронной почты может иметь метод «Отправить» и т. д.

Объекты также имеют свойства, описывающие их характеристики. Запись базы данных может иметь свойство FirstName и LastName (среди прочего).

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

Пример

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

Пример

@{
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 = "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>