Руководство: Начало работы с Razor Pages в ASP.NET Core

Note

Это не последняя версия этой статьи. В текущей версии см. версию .NET 10 этой статьи.

Warning

Эта версия ASP.NET Core больше не поддерживается. Дополнительные сведения см. в политике поддержки .NET и .NET Core. В текущей версии см. версию .NET 10 этой статьи.

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

Это руководство является первым в серии, которая учит основам создания веб-приложения ASP.NET Core Razor Pages.

Дополнительные сведения, предназначенные для разработчиков, которые знакомы с контроллерами и представлениями, см. в статье Введение в Razor Pages. Общие сведения см. в разделе Entity Framework Core для начинающих.

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

В конце этого руководства у вас будет веб-приложение Pages, которое управляет базой данных фильмов.

Home или страница индекса.

Prerequisites

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

  • Откройте Visual Studio и выберите Создать проект.

  • В диалоговом окне "Создание проекта" выберите ASP.NET Core Web App (RazorPages)>Next.

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

  • Нажмите кнопку Далее.

  • В диалоговом окне Дополнительные сведения выполните следующие действия.

    • Выберите .NET 10.0.
    • Убедитесь, что флажок Не использовать инструкции верхнего уровня не установлен.
  • Нажмите кнопку "Создать".

    Диалоговое окно дополнительных сведений.

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

    Обозреватель решений, показывающий структуру проекта RazorPagesMovie.

Альтернативные подходы к созданию проекта см. в статье Создание проекта в Visual Studio.

Выполнить приложение

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

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

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

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

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

Диалоговое окно предупреждения системы безопасности.

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

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

Visual Studio:

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

Закройте окно браузера.

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

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

Папка Pages

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

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

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

Папка wwwroot

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

appsettings.json

Содержит данные конфигурации, например строки подключения. Дополнительные сведения см. в разделе Конфигурация в ASP.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.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.UseRouting();

app.UseAuthorization();

app.MapStaticAssets();
app.MapRazorPages()
   .WithStaticAssets();

app.Run();

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

var builder = WebApplication.CreateBuilder(args);

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

var app = builder.Build();

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

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

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    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.

Следующий код включает различные Middleware:

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

Поиск и устранение неполадок с использованием готового примера

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

Дальнейшие шаги

Это первое руководство из серии, в которой объясняются основы создания веб-приложения на Razor Pages в ASP.NET Core.

Дополнительные сведения, предназначенные для разработчиков, которые знакомы с контроллерами и представлениями, см. в статье Введение в Razor Pages. Общие сведения см. в разделе Entity Framework Core для начинающих.

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

В конце этого руководства вы получите Razor веб-приложение Pages для управления базой данных фильмов.

Home или страница индекса

Prerequisites

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

    Рабочие нагрузки установщика VS22

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

  • Запустите Visual Studio и выберите новый проект.

  • В диалоговом окне "Создание проекта" выберите ASP.NET Core Web App (RazorPages)>Next.

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

  • Нажмите кнопку Далее.

  • В диалоговом окне Дополнительные сведения выполните следующие действия.

    • Выберите .NET 9.0.
    • Убедитесь, что флажок Не использовать инструкции верхнего уровня не установлен.
  • Нажмите кнопку "Создать".

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

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

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

Альтернативные подходы к созданию проекта см. в статье Создание проекта в Visual Studio.

Выполнить приложение

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

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

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

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

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

Диалоговое окно

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

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

Visual Studio:

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

Закройте окно браузера.

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

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

Папка Pages

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

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

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

Папка wwwroot

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

appsettings.json

Содержит данные конфигурации, например строки подключения. Дополнительные сведения см. в разделе Конфигурация в ASP.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.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.UseRouting();

app.UseAuthorization();

app.MapStaticAssets();
app.MapRazorPages();

app.Run();

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

var builder = WebApplication.CreateBuilder(args);

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

var app = builder.Build();

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

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

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    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.

Следующий код включает различные Middleware:

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

Поиск и устранение неполадок с использованием готового примера

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

Дальнейшие шаги

Это первое руководство из серии, в которой объясняются основы создания веб-приложения на Razor Pages в ASP.NET Core.

Дополнительные сведения, предназначенные для разработчиков, которые знакомы с контроллерами и представлениями, см. в статье Введение в Razor Pages. Общие сведения см. в разделе Entity Framework Core для начинающих.

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

В конце этого руководства вы получите Razor веб-приложение Pages для управления базой данных фильмов.

Home или страница индекса

Prerequisites

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

    Рабочие нагрузки установщика VS22

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

  • Запустите Visual Studio и выберите новый проект.

  • В диалоговом окне "Создание проекта" выберите ASP.NET Core Web App (RazorPages)>Next.

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

  • Нажмите кнопку Далее.

  • В диалоговом окне Дополнительные сведения выполните следующие действия.

    • Выберите .NET 8.0 (долгосрочная поддержка).
    • Убедитесь, что флажок Не использовать инструкции верхнего уровня не установлен.
  • Нажмите кнопку "Создать".

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

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

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

Альтернативные подходы к созданию проекта см. в статье Создание проекта в Visual Studio.

Выполнить приложение

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

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

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

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

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

Диалоговое окно

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

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

Visual Studio:

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

Закройте окно браузера.

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

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

Папка Pages

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

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

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

Папка wwwroot

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

appsettings.json

Содержит данные конфигурации, например строки подключения. Дополнительные сведения см. в разделе Конфигурация в ASP.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.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 в контейнер внедрения зависимостей (DI) поддержку Pages и выполняют сборку приложения:

var builder = WebApplication.CreateBuilder(args);

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

var app = builder.Build();

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

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

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    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.

Следующий код включает различные Middleware:

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

Поиск и устранение неполадок с использованием готового примера

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

Дальнейшие шаги

Это первое руководство из серии, в которой объясняются основы создания веб-приложения на Razor Pages в ASP.NET Core.

Дополнительные сведения, предназначенные для разработчиков, которые знакомы с контроллерами и представлениями, см. в статье Введение в Razor Pages. Общие сведения см. в разделе Entity Framework Core для начинающих.

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

В конце этого руководства вы получите Razor веб-приложение Pages для управления базой данных фильмов.

Home или страница индекса

Prerequisites

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

    Рабочие нагрузки установщика VS22

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

  • Откройте Visual Studio и выберите Создать проект.

  • В диалоговом окне "Создание проекта" выберите ASP.NET Core Web App>Next.

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

  • Нажмите кнопку Далее.

  • В диалоговом окне Дополнительные сведения выполните следующие действия.

    • Выберите .NET 7.0 (стандартная поддержка терминов).
    • Убедитесь, что флажок Не использовать инструкции верхнего уровня не установлен.
  • Нажмите кнопку "Создать".

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

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

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

Альтернативные подходы к созданию проекта см. в статье Создание проекта в Visual Studio.

Выполнить приложение

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

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

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

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

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

Диалоговое окно

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

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

Visual Studio:

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

Закройте окно браузера.

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

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

Папка Pages

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

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

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

Папка wwwroot

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

appsettings.json

Содержит данные конфигурации, например строки подключения. Дополнительные сведения см. в разделе Конфигурация в ASP.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.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 в контейнер внедрения зависимостей (DI) поддержку Pages и выполняют сборку приложения:

var builder = WebApplication.CreateBuilder(args);

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

var app = builder.Build();

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

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

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    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.

Следующий код включает различные Middleware:

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

Поиск и устранение неполадок с использованием готового примера

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

Дальнейшие шаги

Это первое руководство из серии, в которой объясняются основы создания веб-приложения на Razor Pages в ASP.NET Core.

Дополнительные сведения, предназначенные для разработчиков, которые знакомы с контроллерами и представлениями, см. в статье Введение в Razor Pages. Общие сведения см. в разделе Entity Framework Core для начинающих.

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

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

Изучив это руководство, вы:

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

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

Home или страница индекса

Prerequisites

Создание веб-приложения 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. Вы можете сделать самозаверяющий сертификат, созданный IIS Express, доверенным, чтобы не получать предупреждения SSL в браузере. Сделать SSL-сертификат IIS Express доверенным?

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

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

Диалоговое окно

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

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

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

Содержит данные конфигурации, например строки подключения. Дополнительные сведения см. в разделе Конфигурация в ASP.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.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) и выполняется сборка приложения.

var builder = WebApplication.CreateBuilder(args);

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

var app = builder.Build();

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

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

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    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.

Следующий код включает различные Middleware:

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

Поиск и устранение неполадок с использованием готового примера

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

Дальнейшие шаги

Это первое руководство из серии, в которой объясняются основы создания веб-приложения на Razor Pages в ASP.NET Core.

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

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

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

Изучив это руководство, вы:

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

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

Home или страница индекса

Prerequisites

Создание веб-приложения 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. Вы можете сделать самозаверяющий сертификат, созданный IIS Express, доверенным, чтобы не получать предупреждения SSL в браузере. Сделать SSL-сертификат IIS Express доверенным?

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

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

    Диалоговое окно

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

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

    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

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

Program.cs

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

Startup.cs

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

Поиск и устранение неполадок с использованием готового примера

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

Дальнейшие шаги

Это первое руководство из серии, в которой рассказывается об основах создания веб-приложения на ASP.NET Core Razor Pages.

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

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

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

Изучив это руководство, вы:

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

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

Home или страница индекса

Prerequisites

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

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

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

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

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

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

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

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

Выполнить приложение

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

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

    Этот проект настроен для использования SSL. Вы можете сделать самозаверяющий сертификат, созданный IIS Express, доверенным, чтобы не получать предупреждения SSL в браузере. Сделать 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

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

Program.cs

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

Startup.cs

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

Дальнейшие шаги