Учебник. Начало работы с Razor Pages в ASP.NET Core

Автор: Рик Андерсон (Rick Anderson)

В этом первом руководстве серии приводятся основные сведения о веб-приложении Razor Pages в ASP.NET Core.

Дополнительные сведения, предназначенные для разработчиков, которые знакомы с контроллерами и представлениями, см. в статье Введение в Razor Pages.

Если вы новичок в разработке на ASP.NET Core и не знаете, какое вам подойдет решение для пользовательского веб-интерфейса, см. статью Выбор пользовательского интерфейса ASP.NET Core.

Пройдя всю серию, вы получите приложение, которое управляет базой данных фильмов.

В этом учебнике рассмотрены следующие задачи.

  • Создание веб-приложения Razor Pages.
  • Запустите приложение.
  • Анализ файлов проекта.

Пройдя это руководство, вы получите рабочее веб-приложение Razor Pages, улучшение которого описано в последующих руководствах.

Страница Home или Index

Предварительные требования

Создание веб-приложения Razor Pages

  1. Запустите Visual Studio и щелкните Создать проект Дополнительные сведения см. в статье Создание проекта в Visual Studio.

    Создание проекта в начальном окне

  2. В диалоговом окне Создать проект выберите Веб-приложение ASP.NET Core и нажмите Далее.

    Создание веб-приложения ASP.NET Core

  3. В диалоговом окне Настроить новый проект введите RazorPagesMovie в поле Имя проекта. Важно присвоить проекту имя RazorPagesMovie, включая сопоставление регистра букв, чтобы пространство имени соответствовало при копировании и вставке примера кода.

  4. Нажмите кнопку создания.

    Настройка проекта

  5. В диалоговом окне Создайте веб-приложение ASP.NET Core сделайте следующее:

    1. В раскрывающихся списках выберите .NET Core и ASP.NET Core 5.0.
    2. Веб-приложение.
    3. Create (создать).

    Выбор веб-приложения ASP.NET Core

    Создается следующий начальный проект:

    обозреватель решений

Запуск приложения

  • Нажмите клавиши CTRL+F5, чтобы выполнить запуск без отладчика.

    Visual Studio отображает следующее диалоговое окно, если проект еще не настроен для использования SSL:

    Этот проект настроен для использования SSL. Чтобы избежать предупреждений о SSL в браузере, вы можете сделать самозаверяющий сертификат, созданный IIS Express, доверенным. Вы хотите сделать SSL-сертификат IIS Express доверенным?

    Выберите Да, чтобы сделать SSL-сертификат IIS Express доверенным.

    Отобразится следующее диалоговое окно.

    Диалоговое окно "Предупреждение о безопасности"

    Выберите Да, если согласны доверять сертификату разработки.

    Сведения о доверии к браузеру Firefox см. в разделе Ошибка сертификата браузера Firefox SEC_ERROR_INADEQUATE_KEY_USAGE.

    Visual Studio запускает IIS Express, а затем приложение. В адресной строке указывается localhost:port#, а не что-либо типа example.com. Это связано с тем, что localhost — стандартное имя узла для локального компьютера. Localhost обслуживает только веб-запросы с локального компьютера. Когда Visual Studio создает веб-проект, для веб-сервера используется случайный порт.

Анализ файлов проекта

Ниже приведен обзор основных папок и файлов проекта, с которыми вы будете работать в последующих учебниках.

Папка Pages

Содержит страницы Razor и вспомогательные файлы. Каждая страница Razor — это пара файлов.

  • Файл .cshtml с разметкой HTML и кодом C# использует синтаксис Razor.
  • Файл .cshtml.cs с кодом C#, который обрабатывает события страницы.

Имена вспомогательных файлов начинаются с символа подчеркивания. Например, файл _Layout.cshtml настраивает элементы пользовательского интерфейса, общие для всех страниц. Этот файл настраивает меню навигации в верхней части страницы и уведомление об авторских правах в нижней части страницы. Для получения дополнительной информации см. Макет в ASP.NET Core.

Папка wwwroot

Содержит статические ресурсы, такие как HTML-файлы, файлы JavaScript и CSS-файлы. Для получения дополнительной информации см. Статические файлы в ASP.NET Core.

appsettings.json

Содержит данные конфигурации, например строки подключения. Для получения дополнительной информации см. Конфигурация в .NET Core.

Program.cs

Содержит точку входа для приложения. Для получения дополнительной информации см. Универсальный узел .NET в ASP.NET Core.

Startup.cs

содержит код, задающий поведение приложения. Для получения дополнительной информации см. Запуск приложения в ASP.NET Core.

Устранение неполадок с завершенным примером

Если вы столкнулись с проблемой, которую не можете решить, сравните свой код с кодом готового проекта. Просмотрите или скачайте завершенный проект (порядок загрузки).

Дальнейшие действия

В этом первом руководстве серии приводятся основные сведения о веб-приложении Razor Pages в ASP.NET Core.

Дополнительные сведения, предназначенные для разработчиков, которые знакомы с контроллерами и представлениями, см. в статье Введение в Razor Pages.

Пройдя всю серию, вы получите приложение, которое управляет базой данных фильмов.

Просмотреть или скачать пример кода (описание скачивания).

В этом учебнике рассмотрены следующие задачи.

  • Создание веб-приложения Razor Pages.
  • Запустите приложение.
  • Анализ файлов проекта.

Пройдя это руководство, вы получите рабочее веб-приложение Razor Pages, сборка которого описана в последующих руководствах.

Страница Home или Index

Предварительные требования

Создание веб-приложения Razor Pages

  • В Visual Studio в меню Файл щелкните Создать > Проект.

  • Создайте веб-приложение ASP.NET Core и нажмите кнопку Далее. Создание проекта в начальном окне

  • Присвойте проекту имя RazorPagesMovie. Очень важно, чтобы проект имел имя RazorPagesMovie, так как пространства имен при копировании и вставке кода должны совпасть. Указание имени для проекта

  • Выберите в раскрывающемся списке пункт ASP.NET Core 3.1, затем — Веб-приложение и нажмите кнопку Создать.

Выбор веб-приложения ASP.NET Core

Создается следующий начальный проект:

обозреватель решений

Запуск приложения

  • Нажмите клавиши CTRL+F5, чтобы выполнить запуск без отладчика.

    Visual Studio отображает следующее диалоговое окно, если проект еще не настроен для использования SSL:

    Этот проект настроен для использования SSL. Чтобы избежать предупреждений о SSL в браузере, вы можете сделать самозаверяющий сертификат, созданный IIS Express, доверенным. Вы хотите сделать SSL-сертификат IIS Express доверенным?

    Выберите Да, чтобы сделать SSL-сертификат IIS Express доверенным.

    Отобразится следующее диалоговое окно.

    Диалоговое окно "Предупреждение о безопасности"

    Выберите Да, если согласны доверять сертификату разработки.

    Сведения о доверии к браузеру Firefox см. в разделе Ошибка сертификата браузера Firefox SEC_ERROR_INADEQUATE_KEY_USAGE.

    Visual Studio запускает IIS Express, а затем приложение. В адресной строке указывается localhost:port#, а не что-либо типа example.com. Это связано с тем, что localhost — стандартное имя узла для локального компьютера. Localhost обслуживает только веб-запросы с локального компьютера. Когда Visual Studio создает веб-проект, для веб-сервера используется случайный порт.

Анализ файлов проекта

Ниже приведен обзор основных папок и файлов проекта, с которыми вы будете работать в последующих учебниках.

Папка Pages

Содержит страницы Razor и вспомогательные файлы. Каждая страница Razor — это пара файлов.

  • Файл .cshtml с разметкой HTML и кодом C# использует синтаксис Razor.
  • Файл .cshtml.cs с кодом C#, который обрабатывает события страницы.

Имена вспомогательных файлов начинаются с символа подчеркивания. Например, файл _Layout.cshtml настраивает элементы пользовательского интерфейса, общие для всех страниц. Этот файл настраивает меню навигации в верхней части страницы и уведомление об авторских правах в нижней части страницы. Для получения дополнительной информации см. Макет в ASP.NET Core.

Папка wwwroot

Содержит статические файлы, такие как HTML-файлы, файлы JavaScript и CSS-файлы. Для получения дополнительной информации см. Статические файлы в ASP.NET Core.

appSettings.json

Содержит данные конфигурации, например строки подключения. Для получения дополнительной информации см. Конфигурация в .NET Core.

Program.cs

Содержит точку входа для программы. Для получения дополнительной информации см. Универсальный узел .NET в ASP.NET Core.

Startup.cs

содержит код, задающий поведение приложения. Для получения дополнительной информации см. Запуск приложения в ASP.NET Core.

Следующие шаги

В этом первом руководстве серии приводятся основные сведения о веб-приложении Razor Pages в ASP.NET Core.

Дополнительные сведения, предназначенные для разработчиков, которые знакомы с контроллерами и представлениями, см. в статье Введение в Razor Pages.

Если вы новичок в разработке на ASP.NET Core и не знаете, какое вам подойдет решение для пользовательского веб-интерфейса, см. статью Выбор пользовательского интерфейса ASP.NET Core.

Пройдя всю серию, вы получите приложение, которое управляет базой данных фильмов.

В этом учебнике рассмотрены следующие задачи.

  • Создание веб-приложения Razor Pages.
  • Запустите приложение.
  • Анализ файлов проекта.

Пройдя это руководство, вы получите рабочее веб-приложение Razor Pages, улучшение которого описано в последующих руководствах.

Страница Home или Index

Предварительные требования

  • Visual Studio 2022 с рабочей нагрузкой ASP.NET и веб-разработка.

Создание веб-приложения Razor Pages

  1. Запустите Visual Studio 2022 и нажмите Создать проект.

    Создание проекта в начальном окне

  2. В диалоговом окне Создать проект выберите Веб-приложение ASP.NET Core и нажмите Далее.

    Создание веб-приложения ASP.NET Core

  3. В диалоговом окне Настроить новый проект введите RazorPagesMovie в поле Имя проекта. Важно присвоить проекту имя RazorPagesMovie, включая сопоставление регистра букв, чтобы пространство имени соответствовало при копировании и вставке примера кода.

    Настройка нового проекта

  4. Выберите Далее.

  5. В диалоговом окне Дополнительные сведения выберите .NET 6.0 (предварительная версия) , а затем нажмите Создать.

    Дополнительные сведения

    Создается следующий начальный проект:

    обозреватель решений

Запуск приложения

Выберите RazorPagesMovie в Обозревателе решений и нажмите клавиши CTRL + F5, чтобы выполнить запуск без отладчика.

Visual Studio отображает следующее диалоговое окно, если проект еще не настроен для использования SSL:

Этот проект настроен для использования SSL. Чтобы избежать предупреждений о SSL в браузере, вы можете сделать самозаверяющий сертификат, созданный IIS Express, доверенным. Вы хотите сделать SSL-сертификат IIS Express доверенным?

Выберите Да, чтобы сделать SSL-сертификат IIS Express доверенным.

Отобразится следующее диалоговое окно.

Диалоговое окно "Предупреждение о безопасности"

Выберите Да, если согласны доверять сертификату разработки.

Сведения о доверии к браузеру Firefox см. в разделе Ошибка сертификата браузера Firefox SEC_ERROR_INADEQUATE_KEY_USAGE.

Visual Studio:

  • Запускает приложение, которое запускает сервер Kestrel.
  • Запускает браузер по умолчанию по адресу https://localhost:5001, который отображает пользовательский интерфейс приложений.

Анализ файлов проекта

В разделах ниже приведен обзор основных папок и файлов проекта, с которыми вы будете работать в последующих учебниках.

Папка Pages

Содержит страницы Razor и вспомогательные файлы. Каждая страница Razor — это пара файлов.

  • Файл .cshtml с разметкой HTML и кодом C# использует синтаксис Razor.
  • Файл .cshtml.cs с кодом C#, который обрабатывает события страницы.

Имена вспомогательных файлов начинаются с символа подчеркивания. Например, файл _Layout.cshtml настраивает элементы пользовательского интерфейса, общие для всех страниц. Этот файл настраивает меню навигации в верхней части страницы и уведомление об авторских правах в нижней части страницы. Для получения дополнительной информации см. Макет в ASP.NET Core.

Папка wwwroot

Содержит статические ресурсы, такие как HTML-файлы, файлы JavaScript и CSS-файлы. Для получения дополнительной информации см. Статические файлы в ASP.NET Core.

appsettings.json

Содержит данные конфигурации, например строки подключения. Для получения дополнительной информации см. Конфигурация в .NET Core.

Program.cs

Содержит следующий код:

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddRazorPages();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
}
else
{
    app.UseExceptionHandler("/Error");
    // The default HSTS value is 30 days. You may want to change this for production
    // scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.MapRazorPages();

app.Run();

В следующих строках кода в этом файле создается объект WebApplicationBuilder с предварительно настроенными значениями по умолчанию, добавляется поддержка Razor Pages в контейнер внедрения зависимостей (DI) и выполняется сборка приложения.

using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using RazorPagesMovie.Data;
var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddRazorPages();

builder.Services.AddDbContext<RazorPagesMovieContext>(options => 
       options.UseSqlServer(builder.Configuration.GetConnectionString("RazorPagesMovieContext")));

var app = builder.Build();

Следующий выделенный код включает страницу со сведениями об исключении для разработчика при выполнении приложения в режиме разработки:

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
}
else
{
    app.UseExceptionHandler("/Error");
    // The default HSTS value is 30 days. You may want to change this for production
    // scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

Страница со сведениями об исключении для разработчика содержит полезную информацию об исключениях. Рабочие приложения не следует запускать в режиме разработки, поскольку на странице со сведениями об исключении для разработчика может находиться конфиденциальная информация.

Следующий выделенный код задает для конечной точки исключения /Error и включает протокол HSTS, если приложение не запущено в режиме разработки:

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
}
else
{
    app.UseExceptionHandler("/Error");
    // The default HSTS value is 30 days. You may want to change this for production
    // scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

Например, приведенный выше код выполняется, когда приложение находится в рабочем или тестовом режиме. Дополнительные сведения см. в статье Использование нескольких сред в ASP.NET Core.

Следующий код включает различное ПО промежуточного слоя:

  • app.UseHttpsRedirection();: перенаправляет все запросы HTTP на HTTPS.
  • app.UseStaticFiles();: обеспечивает обслуживание таких статических файлов, как HTML, CSS, изображения и JavaScript. Для получения дополнительной информации см. Статические файлы в ASP.NET Core.
  • app.UseRouting();: добавляет соответствие маршрута в конвейер ПО промежуточного слоя. Дополнительные сведения см. в разделе Маршрутизация в ASP.NET Core.
  • app.MapRazorPages();: настраивает маршрутизацию конечных точек для Razor Pages.
  • app.UseAuthorization();: разрешает пользователю доступ к защищенным ресурсам. Это приложение не использует авторизацию, поэтому эту строку можно удалить.
  • app.Run();: запускает приложение.

Устранение неполадок с завершенным примером

Если вы столкнулись с проблемой, которую не можете решить, сравните свой код с кодом готового проекта. Просмотрите или скачайте завершенный проект (порядок загрузки).

Дальнейшие действия