Создадим и запустим сайт в Visual Studio, VS Code или Rider, познакомимся с файлами и изменим содержимое. Сохраним, запустим и увидим результат в браузере.
Предыдущий урок: 01 — Моя первая страница · Следующий урок: 03 — Сайт становится моим
На сенсорном экране проведите вправо для перехода к следующему уроку, влево — к предыдущему.
Чему научимся
- Запускать локальный сайт в Windows или macOS.
- Находить
Pagesиwwwroot. - Редактировать HTML, сохранять файлы и проверять результат в браузере.
Пробуем создать проект Razor Pages
До сих пор вы изучали теги HTML и правила CSS в обычном файле, без проекта. Теперь создадим сайт из готового шаблона. Это пока пробный этап: выберите любое имя на английском без пробелов, например RazorPractice. Можно создать несколько проектов, каждый со своим именем и в своей папке. Учётная запись GitHub и доступ для учителя на этом этапе не нужны.
Сохраните папку first-page как отдельное упражнение. Главную страницу нового проекта начнём снова с заголовка, абзаца и изображения; затем добавим своё содержимое и оформление. Позже в этом уроке скопируем изображение, а CSS будем писать в отдельном файле вместо тега style.
Откройте инструкцию для своей среды разработки. Каждая инструкция проведёт вас от создания проекта до надписи Welcome в браузере; к ней можно возвращаться для повторной тренировки.
Visual Studio в Windows — создаём Razor Pages через интерфейс
1. Устанавливаем средства разработки
- Установите Visual Studio Community версии с поддержкой .NET 10. Если Visual Studio уже установлена, откройте Visual Studio Installer и проверьте, нужно ли обновление.
- В окне установки отметьте ASP.NET and web development и нажмите Install. Для существующей установки нажмите Modify, отметьте компонент и завершите изменение.
- Убедитесь, что установлен .NET 10 SDK. Если его нет, установите и перезапустите Visual Studio.
Проект содержит код сайта. Solution / Решение — контейнер, с помощью которого Visual Studio открывает проекты и управляет ими. У нас в нём будет один проект.
2. Выбираем место и имена
Visual Studio создаст папки проекта за вас. Начните со стартового экрана программы.
Открываем окно создания проекта
Откройте Visual Studio 2026. В правой части стартового экрана нажмите Create a new project, как отмечено на снимке.
Если рабочее окно уже открыто, выберите File → New → Project, чтобы попасть в то же окно.
Находим и выбираем шаблон сайта
В поле поиска вверху введите raz. В результатах выберите ASP.NET Core Web App (Razor Pages), как отмечено на снимке, затем нажмите Next внизу окна.
Убедитесь, что выбрали шаблон сайта на языке C#. Результат Razor Class Library, расположенный ниже, нам не подходит. Не выбирайте Blazor, Web API или шаблон со словом MVC в имени.
На любой снимок можно нажать, чтобы открыть его в полном размере.
Задаём имена и выбираем папку
На снимке показано имя GuysRazor; для пробного проекта можно выбрать другое.
В окне Configure your new project выберите имя на английском без пробелов, например RazorPractice или AnimalsTry2. Это пробный проект; обязательное личное имя зададим только на уроке Git после Bootstrap.
- Project name: введите выбранное имя.
- Location: оставьте место по умолчанию, предложенное Visual Studio, обычно
source\reposвнутри вашей пользовательской папки. Не копируйте имя пользователя3straсо снимка. - Solution name: оставьте то же имя, что у проекта.
- Place solution and project in the same directory: оставьте без флажка.
Внизу окна видно, где будет создан проект. Нажмите Next. Предварительно создавать папку в Проводнике не нужно.
Visual Studio создаст внешнюю папку решения и внутреннюю папку проекта, обе с выбранным именем. В нашем примере обе называются RazorPractice.
Если проект уже создан, откройте его через Open a project or solution и выберите RazorPractice.sln или RazorPractice.slnx в существующей папке. Для продолжения работы создавать ещё один проект не нужно. Для тренировки создания выберите новое имя и новую папку. Папку first-page с прошлого урока оставляем как есть.
3. Создаём проект Razor Pages
В окне Additional information выберите следующие настройки. Обратите внимание на указанное отличие от старого снимка в пункте top-level statements:
- Framework: .NET 10.0 (Long Term Support).
- Authentication type: None.
- Configure for HTTPS — флажок установлен.
- Enable container support — без флажка.
- Do not use top-level statements — без флажка: оставляем обычный код запуска шаблона. На старом снимке флажок установлен; у себя снимите его.
- Enlist in Aspire orchestration — без флажка.
Серые поля не требуют действий. Нажмите Create внизу окна и дождитесь создания проекта.
Если в списке нет шаблона Razor Pages или .NET 10, вернитесь к установке и обновлению. Не выбирайте другой шаблон ради перехода к следующему экрану; покажите учителю, чего не хватает.
4. Первая проверка: нажимаем Play и видим сайт
После Create дождитесь открытия окна проекта и окончания загрузки. Прежде чем менять код, проверьте, что созданный проект работает:
- Нажмите зелёный треугольник ▶ (Play) на верхней панели Visual Studio.
- Дождитесь сборки и открытия браузера. При первом запуске это может занять некоторое время.
- Проверьте, что в браузере открылась начальная страница с заголовком Welcome, а в адресной строке указан
localhostс номером порта. Это ваш сайт, работающий сейчас на вашем компьютере.
Проверка прошла: вы нажали Play, и страница Welcome открылась в браузере. Проект успешно создан; можно продолжать работу и пробовать изменения.
Если сайт не открылся или появилась ошибка сборки, остановитесь здесь и покажите сообщение учителю. Переходите к редактированию только после успешного запуска сайта.
При первом запуске предлагается подтвердить сертификат HTTPS?
Visual Studio может попросить подтвердить локальный сертификат разработки для HTTPS. Если не уверены, что подтверждать, попросите помощи учителя. Можно также остановить запуск, выбрать http в списке рядом с зелёным треугольником и снова нажать Play.
Останавливаем, знакомимся с файлами и меняем заголовок
Вернитесь в Visual Studio и нажмите красный квадрат Stop на верхней панели, чтобы остановить сайт.
Откройте View → Solution Explorer. Раскройте проект RazorPractice и папку Pages. В файловом менеджере видна следующая структура:
source/repos/
└── RazorPractice/
├── RazorPractice.slnx (או RazorPractice.sln)
└── RazorPractice/
├── RazorPractice.csproj
├── Program.cs
├── Pages/
│ └── Index.cshtml
└── wwwroot/
Pages содержит страницы сайта, а wwwroot — оформление, изображения и JavaScript. В дальнейшем путь RazorPractice/Pages/Index.cshtml начинается от папки решения RazorPractice; в Solution Explorer раскрывают проект, затем Pages.
- В Solution Explorer откройте проект с выбранным именем, затем
Pages → Index.cshtml. - В строке заголовка замените только
Welcomeнаהחיות שלי(«Мои животные») и сохраните с помощью Ctrl+S. - Снова нажмите зелёный треугольник Play и убедитесь, что новый заголовок появился в браузере.
- Вернитесь в Visual Studio и остановите сайт кнопкой Stop, прежде чем продолжать редактирование.
Теперь ваше изменение тоже видно на сайте. Сохраните файлы и переходите к общему уроку.
Как использовать свои имена в следующих уроках?
В примерах курса проект называется RazorTaba. У себя используйте выбранное имя: например, RazorTaba/Pages/Index.cshtml соответствует RazorPractice/Pages/Index.cshtml внутри папки решения. Не переименовывайте проект ради соответствия примеру. В Solution Explorer раскройте свой проект, затем Pages.
Оставьте Program.cs и Properties/launchSettings.json такими, какими они созданы. На этом этапе редактируем только содержимое и оформление. Создавать Git-репозиторий или публиковать на GitHub не нужно.
VS Code в macOS — создаём Razor Pages в терминале
1. Подготавливаем инструменты
- Установите VS Code и .NET 10 SDK. На Mac выберите Arm64 для Apple Silicon или x64 для Intel. Нужен SDK, а не только Runtime.
- В VS Code откройте Extensions, найдите C# Dev Kit от Microsoft и нажмите Install. Расширение помогает редактировать C#; проект создадим в терминале.
- Откройте Terminal → New Terminal. На Mac можно также открыть Terminal через Spotlight. Введите команду и нажмите Enter:
dotnet --list-sdks
Проверьте, что версия начинается с 10.0. Если команда не распознаётся, закройте и откройте VS Code после установки SDK. Если она по-прежнему не работает, обратитесь к учителю.
2. Выбираем родительскую папку и имя пробного проекта
Следующие команды предназначены для Terminal в macOS. Копируйте каждую строку отдельно и нажимайте Enter:
mkdir -p ~/WebProjects
cd ~/WebProjects
pwd
mkdir -p создаёт родительскую папку, если её нет. cd переводит терминал в неё, а pwd показывает текущее расположение. Проверьте, что путь заканчивается на WebProjects, а не на папку другого проекта.
Выберите любое имя на английском без пробелов, например RazorPractice. Во всех следующих командах заменяйте его одним и тем же выбранным именем. Если папка с таким именем уже существует, выберите новое, например RazorPractice2; не перезаписывайте её.
3. Создаём проект из шаблона Razor Pages
dotnet new webapp --name RazorPractice --output RazorPractice --framework net10.0 --auth None
cd RazorPractice
webapp — шаблон Razor Pages. --name задаёт имя проекта; --output создаёт новую папку с этим именем. net10.0 выбирает версию курса, а None создаёт сайт без учётных записей пользователей. Дождитесь сообщения об успехе и завершения восстановления пакетов. Не добавляйте --force, если сообщается, что папка уже содержит файлы.
В VS Code выберите File → Open Folder, перейдите в WebProjects в домашней папке и откройте RazorPractice. Если VS Code спросит, доверяете ли вы созданным файлам, можно подтвердить. В Explorer проверьте наличие RazorPractice.csproj, папок Pages и wwwroot.
Если открылось новое окно, снова выберите в нём Terminal → New Terminal. Убедитесь, что терминал находится в папке с файлом .csproj.
4. Запускаем сайт до внесения изменений
dotnet watch --launch-profile http
Дождитесь строки Now listening on: http://localhost:…. Откройте в браузере точный адрес, показанный у вас; номер порта выбран шаблоном и может отличаться в разных проектах. Если браузер не открылся автоматически, скопируйте адрес в его адресную строку. Во время просмотра сайта оставляйте терминал работающим.
Страница показывает Welcome и меню Home и Privacy. Это работающий шаблон Razor Pages, уже включающий Bootstrap и файл собственных стилей wwwroot/css/site.css.
5. Меняем, останавливаем и открываем снова
- Откройте
Pages/Index.cshtmlи замените словоWelcomeнаהחיות שלי(«Мои животные»). Сохраните с помощью Cmd+S и обновите браузер, если изменение не появилось автоматически. - Вернитесь в терминал и нажмите Ctrl+C, чтобы остановить сервер. Одно лишь закрытие вкладки браузера его не останавливает.
- В следующий раз откройте ту же папку и снова запустите
dotnet watch --launch-profile http. - Для повторной тренировки создания остановите сервер, вернитесь в родительскую папку командой
cd ~/WebProjectsи повторите этап 3 с новым именем. Не создавайте проект внутри существующего проекта.
Оставьте Program.cs, настройки запуска и файлы Bootstrap такими, какими они созданы. На этом этапе Git и GitHub не нужны.
Rider в Windows или macOS — создаём Razor Pages через интерфейс
1. Подготавливаем инструменты
Установите JetBrains Rider и .NET 10 SDK для своей операционной системы. На Mac выберите Arm64 для Apple Silicon или x64 для Intel. Если Rider был открыт при установке, перезапустите его.
2. Создаём решение и проект через интерфейс
На стартовом экране Rider нажмите New Solution, как показано на снимке. Если решение уже открыто, выберите File → New Solution.
Выбираем Web, затем Razor Pages
Выберите Web слева. В списке Template обязательно выберите Web App (Razor Pages): при открытии категории Web сначала может быть выбран Blazor, поэтому проверьте выделенную строку.
Задайте пробному проекту любое имя, например RazorPractice, и выберите свою родительскую папку. На снимке использована папка-пример в Windows; на Mac можно выбрать WebProjects в домашней папке. Не копируйте пример пути, если это не ваша папка.
Проверяем настройки создания
- В Solution name введите любое имя на английском без пробелов, например
RazorPractice. Оставьте такое же Project name. - В Solution directory выберите свою родительскую папку, например
WebProjectsв домашней папке. Перед подтверждением проверьте полный путь. Не выбирайте папку другого проекта. - Оставьте Put solution and project in the same directory без флажка. Получатся внешняя папка решения и внутренняя папка проекта.
- Выберите C# и платформу net10.0. Прокрутите окно вниз с помощью внешней правой полосы прокрутки, за список шаблонов, чтобы увидеть дополнительные параметры.
- Оставьте Do not use top-level statements без флажка. В поле Auth выберите No authentication. Оставьте Add Dockerfile без флажка. В Advanced Settings ничего менять не нужно.
- Снимите флажок Create Git repository. На этом этапе тренируемся создавать и запускать; доступ через GitHub настроим после Bootstrap.
- Нажмите Create и дождитесь создания файлов и восстановления пакетов.
На любой снимок можно нажать для просмотра в полном размере.
Если .NET 10 или нужного шаблона нет, проверьте установку SDK и обратитесь к учителю. Не выбирайте другой шаблон, чтобы продолжить.
3. Запускаем и проверяем
- В окне Solution слева (дерево файлов) раскройте проект и
Pages. Убедитесь, что естьIndex.cshtml, файл.csprojи папкаwwwroot. - В списке конфигураций запуска на верхней панели выберите RazorPractice: http или имя своего проекта с
http. Если этот профиль уже выбран, оставьте его. Нажмите Run ▶. - Дождитесь завершения сборки. Если браузер не открылся автоматически, откройте адрес
http://localhost:…из окна Run. Используйте номер порта, показанный вашим проектом. - Проверьте наличие Welcome и меню Home и Privacy. Остановите сайт кнопкой Stop ■.
- Откройте
Pages/Index.cshtml, заменитеWelcomeнаהחיות שלי(«Мои животные»), сохраните и снова запустите. Убедитесь, что заголовок изменился.
На снимке Rider слева видны проект и Pages, на верхней панели — профиль http, внизу — окно Run. Строка Now listening on показывает адрес вашего сайта. Номер порта может отличаться от снимка. Жёлтое предупреждение на снимке означает, что при запуске профиля http не выбран порт HTTPS; если появилась строка Now listening on и открылась страница Welcome, запуск HTTP удался.
У вас есть сайт Razor Pages, созданный из шаблона и работающий из Rider. Bootstrap уже находится в wwwroot/lib/bootstrap, а собственные стили — в wwwroot/css/site.css.
4. Продолжаем или пробуем ещё раз
Для существующей работы выберите Open и откройте файл решения .sln или .slnx. Для повторной тренировки остановите сайт, вернитесь в New Solution и выберите новое имя, например RazorPractice2, и новую папку рядом с первой. Сохраните прежний пробный проект; удалять его не нужно.
Оставьте Program.cs, настройки запуска и файлы шаблона на месте. Публиковать что-либо в сети не требуется.
Тренируемся создавать ещё один проект
- Остановите первый сайт кнопкой Stop или сочетанием Ctrl+C в терминале.
- Вернитесь к своей инструкции и создайте второй проект с другим именем, например
RazorPractice2, в отдельной папке рядом с первой. - Запустите его и проверьте, что появляется Welcome. Измените заголовок, чтобы различать открытые проекты.
- Остановите сайт и снова откройте первый проект. Убедитесь, что его файлы и ваше изменение сохранились.
Теперь вы умеете создавать сайт, останавливать его и открывать существующую работу. Выберите один из пробных проектов для дальнейшей работы с содержимым и CSS. До урока Bootstrap можно пробовать снова; на следующем за ним уроке Git зарегистрируем годовой проект под именем FirstNameLastNameRazor и предоставим учителю доступ.
Продолжаем работу с созданным проектом
1. Открываем существующую работу
В VS Code откройте папку проекта с выбранным именем через File → Open Folder. В Visual Studio откройте файл решения с вашим именем, например GuysRazor.slnx или GuysRazor.sln, из папки решения. Для повторного открытия существующей работы создавать проект заново не нужно. В Rider откройте файл решения через Open.
Если продолжаете существующий пробный проект, открывайте его папку, сохраняйте файлы и запускайте сайт. Для нового проекта вернитесь к инструкции и выберите новые имя и папку.
2. Редактируем свой сайт
Расположите браузер рядом с редактором. В Visual Studio или Rider запустите профиль http. В VS Code откройте терминал в папке с файлом .csproj и выполните:
dotnet watch --launch-profile http
Далее настроим главную страницу и общий макет для иврита. Общий пример сайта во всём курсе остаётся на иврите с направлением справа налево (RTL); код, строки на иврите и lang="he" dir="rtl" сохраняйте как в примере. Здесь RazorTaba — имя внутренней папки проекта. Если в Visual Studio выбрали своё имя, замените эту часть своим именем: например, GuysRazor/Pages/Index.cshtml. Если есть внешняя папка решения, путь начинается от неё; если в VS Code открыли непосредственно папку с .csproj, начинайте с Pages/Index.cshtml, без дополнительной папки. Файлы уже созданы при настройке; теперь их редактируем.
Создайте внутри RazorTaba/wwwroot папку images и скопируйте в неё fox.svg, сохранённый в папке first-page на прошлом уроке. Изображение для главной страницы будет находиться по пути RazorTaba/wwwroot/images/fox.svg.
3. Сохраняем и проверяем
Внесите изменения кода, приведённые ниже, сохраните файлы и проверьте сайт. Попробуйте изменить заголовок или абзац, снова сохраните и посмотрите результат. Если попытка не удалась, прочитайте ошибку и сравните изменённый фрагмент с примером.
Изменения в коде
RazorTaba/Pages/Index.cshtml
Начинаем со страницы, созданной шаблоном. Если вы уже изменили Welcome, вместо него будет ваш заголовок. Меняем содержимое страницы; меню и обрамление остаются в общем макете.
@page
@model IndexModel
@{
- ViewData["Title"] = "Home page";
+ ViewData["Title"] = "בית";
}
-
-<div class="text-center">
- <h1 class="display-4">Welcome</h1>
- <p>Learn about <a href="https://learn.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
-</div>
+<h1>החיות שלי</h1>
+<p>זה האתר הראשון שלי. כאן אכיר לכם חיות שמסקרנות אותי.</p>
+<img src="~/images/fox.svg" alt="איור של שועל" width="180" />
RazorTaba/Pages/Shared/_Layout.cshtml
Этот файл уже существует в шаблоне и подключает ко всем страницам Bootstrap и site.css. Не заменяйте его целиком. Внесите только следующие два изменения, чтобы настроить направление страницы и Bootstrap для иврита:
До
<!DOCTYPE html>
<html lang="en">
⁞
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />После
<!DOCTYPE html>
<html lang="he" dir="rtl">
⁞
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.rtl.min.css" />
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />Оставьте остальные строки, включая ссылку на файл с окончанием .styles.css, меню Home и Privacy, кнопку раскрытия меню на телефоне и скрипты внизу файла. Попробуйте уменьшить ширину окна и открыть меню его кнопкой.
Знакомимся с созданными файлами оформления
wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.cssсодержит готовые классы оформления. Их имена используются в HTML; файл библиотеки не редактируем.wwwroot/css/site.css— файл собственных стилей сайта в этом шаблоне. На уроке CSS добавим сюда свои правила после уже созданных правил.Pages/Shared/_Layout.cshtml.cssсодержит оформление общего макета. Ссылка на файл видаИмяПроекта.styles.cssзагружает это оформление после сборки; вручную такой файл создавать не нужно.
Оставьте Program.cs, Properties/launchSettings.json и исходные правила CSS такими, какими их создал шаблон. Сайт уже работает. Используйте адрес, который показывает ваша среда или терминал; задавать общий номер порта для всех пробных проектов не требуется.
Запускаем и проверяем
- Сайт открывается по адресу
localhost, указанному при вашем запуске. - Заголовок и абзац отображаются на иврите, изображение загружается.
- Сохраните ещё одно изменение, запустите сайт и убедитесь, что оно отображается.
- Остановите сайт, снова откройте тот же проект и запустите его.
Самостоятельное задание и проверка понимания
Измените одно предложение и объясните, в каком файле вы его редактировали и как проверили результат.
Сохраните файлы и покажите работающий сайт. Запишите, где находится папка проекта, чтобы открыть её на следующем занятии.
ИИ может помочь разобраться в сообщении об ошибке и найти неисправность. Вы отвечаете за написание, проверку и объяснение кода; не поручайте агенту писать проект.








