ASP.NET Core MVC — это облегченная платформа с открытым исходным кодом и хорошо тестируемой, которая легко интегрируется с ASP.NET Core.
ASP.NET Core MVC предоставляет основанный на шаблонах способ создания динамических веб-сайтов, который обеспечивает четкое разделение задач. Он дает нам полный контроль над разметкой, поддерживает разработку через тестирование и соответствует последним веб-стандартам.
Предпосылки
В вашей системе должны быть установлены:
- Visual Studio 2019 16.4 или новее с рабочей нагрузкой ASP.NET и веб-разработка
- .NET Core 3.1 SDK или новее
Шаг 1 Новый проект
Установив Visual Studio 2019 и пакет SDK для .Net Core 3.1, вы можете приступить к созданию нового приложения ASP.NET Core.
- Открытый VS2019
- На начальной странице выберите Создать новый проект.
- Создайте веб-приложение и в Visual Studio выберите Создать новый проект. Выберите Веб-приложение ASP.NET Core › Далее.
- Дайте вашему проекту имя, например SimpleDotNetCoreMVCApp, укажите место, где он будет сохранен, и нажмите Создать.
- Теперь вам нужно выбрать версию фреймворка и шаблон проекта MVC (Режим веб-приложения — Вид — Контроллер):
- После нажатия кнопки «Создать» вы увидите, что ваш проект создан и открыт с помощью ASP.Net Core в структуре MVC.
Шаг 2. Запустите проект
- Теперь давайте запустим приложение с помощью Ctrl+F5. Мы видим веб-сайт на основе макета по умолчанию, предоставленного ASP.NET Core MVC:
Шаг 3 Структура проекта
- Теперь давайте изучим структуру проекта и посмотрим на файлы, сгенерированные как часть шаблона MVC по умолчанию:
- Мы видим, что проект хорошо организован в отдельные папки для моделей, контроллеров и представлений. Представления дополнительно организованы в подпапки, как и каждое представление. В каждой из этих папок также создаются файлы по умолчанию. Затем идут стандартные файлы конфигурации и запуска, которые сопровождают шаблон проекта .NET Core.
Зависимости
- Зависимости в проекте ASP.NET Core 3.1 содержат все установленные серверные пакеты NuGet, как показано ниже.
- Щелкните правой кнопкой мыши «Зависимости», а затем выберите «Управление пакетами NuGet», и вы можете установить пакеты Nuget в соответствии с вашими требованиями.
запускSettings.json
- Узел «Свойства» содержит файл launchSettings.json, который содержит профили параметров отладки Visual Studio. Ниже приведен файл launchSettings.json по умолчанию.
- Мы также можем редактировать настройки на вкладке отладки свойств проекта. Щелкните правой кнопкой мыши проект -> выберите «Свойства» -> перейдите на вкладку «Отладка».
Папка wwwroot
- По умолчанию папка wwwroot в проекте ASP.NET Core рассматривается как корневая веб-папка. Статические файлы будут храниться в любой папке в корневом каталоге веб-сайта, и доступ к ним будет осуществляться по относительному пути к этому корню.
- В стандартном приложении ASP.NET статические файлы будут обслуживаться из корневой папки приложения или другой папки под ним. Это было изменено в ASP.NET Core. Теперь по http-запросу будут обслуживаться только те файлы, которые находятся в корневом каталоге веб-сайта — папке wwwroot. Все остальные файлы заблокированы и не могут обслуживаться по умолчанию.
- Как правило, в папке wwwroot должны быть отдельные папки для различных типов статических файлов, таких как JavaScript, CSS, изображения, библиотечные скрипты и т. д., как показано ниже.
Программа.cs
- Веб-приложение ASP.NET Core на самом деле является консольным проектом, который начинает выполняться из точки входа public static void Main() в классе Program, где мы можем создать хост для веб-приложения.
Стартовый класс
Класс Startup находится там, где:
- Службы, необходимые приложению, настроены.
- Конвейер обработки запросов приложения определяется как ряд компонентов промежуточного программного обеспечения.
- Службы ConfigureServices и Configure вызываются средой выполнения ASP.NET Core при запуске приложения:
- При необходимости включает метод ConfigureServices для настройки служб приложения. Служба — это многократно используемый компонент, обеспечивающий функциональность приложения. Службы регистрируются в ConfigureServices и используются в приложении посредством внедрения зависимостей (DI) или ApplicationServices.
- Включает метод Configure для создания конвейера обработки запросов приложения.
- Чтобы определить среду выполнения, ASP.NET Core считывает данные из следующих переменных среды:
- DOTNET_ENVIRONMENT
2. ASPNETCORE_ENVIRONMENT при вызове ConfigureWebHostDefaults. Шаблоны веб-приложений ASP.NET Core по умолчанию вызывают ConfigureWebHostDefaults. Значение ASPNETCORE_ENVIRONMENT имеет приоритет над DOTNET_ENVIRONMENT.
- IHostEnvironment.EnvironmentName может иметь любое значение, но платформа предоставляет следующие значения:
1. Разработка . В файле launchSettings.json для параметра ASPNETCORE_ENVIRONMENT задается значение "Разработка" на локальном компьютере.
2. Постановка
3. Производство: значение по умолчанию, если DOTNET_ENVIRONMENT и ASPNETCORE_ENVIRONMENT не установлены.
Шаг 4. Добавьте контроллер/модель и представление
Архитектурный шаблон модель-представление-контроллер (MVC) разделяет приложение на три основных компонента: модель, представление и контроллер. Шаблон MVC помогает создавать приложения, которые легче тестировать и обновлять, чем традиционные монолитные приложения.
Добавить контроллер
- Классы контроллеров, обрабатывающие запросы браузера. Они извлекают данные модели и вызывают шаблоны представлений, которые возвращают ответ. В приложении MVC представление отображает только информацию; контроллер обрабатывает и реагирует на ввод и взаимодействие пользователя. Например, контроллер обрабатывает данные маршрута и значения строки запроса и передает эти значения в модель. Модель может использовать эти значения для запросов к базе данных. Например, https://localhost:5001/Home/Privacy содержит данные маршрута Home (контроллер) и Privacy (метод действия для вызова на домашнем контроллере). https://localhost:5001/Car/Edit/10 — запрос на редактирование фильма с ID=10 с помощью контроллера автомобиля. Данные маршрута объясняются позже в этом руководстве.
Добавим контроллер и проверим, как он будет работать.
- В Обозревателе решений щелкните правой кнопкой мыши папкуControllersивыберите "Добавить", затем нажмите "Новый элемент":
- В диалоговом окне Добавить каркас выберите Класс контроллера — Пустой,введитеимя вашего контроллера и нажмите Добавить.
- Теперь вы можете видеть, что новый контроллер добавлен с кодом по умолчанию:
- Прямо сейчас мы не добавили представление, поэтому мы изменим тип возвращаемого значения и возвращаемое значение и запустим вывод проверки.
- Каждый общедоступный метод в контроллере можно вызывать как конечную точку HTTP. В приведенном выше примере действие возвращает строку.
- Запустите приложение в режиме без отладки и добавьте «Car» к пути в адресной строке. Метод Index возвращает строку.
- MVC вызывает классы контроллеров (и методы действий внутри них) в зависимости от входящего URL-адреса.
- Формат маршрутизации задается в методе Configure в файле Startup.cs.
- Давайте изменим код, чтобы передать информацию о параметрах из URL-адреса в контроллер. Например, /Car/Index?carname=BMW. Измените метод Index, чтобы включить один параметр, как показано в следующем коде.
- Запустите приложение и перейдите по адресу: https://localhost:44314/Car/Index?carname=BMW.
Добавить представление
- В настоящее время метод Index возвращает строку с сообщением, жестко запрограммированным в классе контроллера. В классе CarController замените метод Index следующим кодом:
Он использует шаблон представления для создания ответа HTML. Методы контроллера, такие как метод Index выше, обычно возвращают IActionResult (или класс, производный от ActionResult), а не тип, подобный строке.
- Щелкните правой кнопкой мыши папку Views, а затем Add › New Folder и назовите папку Car.
- Щелкните правой кнопкой мыши папку Views/Car, затем нажмите Добавить и выберите Новый элемент. В диалоговом окне «Добавить новый элемент» выберите Razor View, сохраните значение поля имени Index.cshtml и нажмите «Добавить».
- Замените содержимое файла представления Razor Views/Car/Index.cshtml следующим:
- Добавьте новую ссылку на нашу страницу макета, как показано ниже:
- Запустите приложение и перейдите по адресу: https://localhost:44314/Car/Index.
- Теперь вы можете увидеть ссылку «Автомобиль» в заголовке, и вы можете перенаправить вид автомобиля, чтобы щелкнуть ссылку «Автомобиль».
Добавить модель
- Вы добавляете классы для управления автомобилями в базу данных. Эти классы будут частью «Модели» приложения -MVC.
- Щелкните правой кнопкой мыши папку «Модели» › «Добавить» › «Класс». Назовите файл Car.cs.
- Введите имя класса в диалоговом окне «Добавить новый элемент».
- Обновите файл Car.cs следующим кодом:
общественный класс Car
{
public int Id { get; набор; }
public string Name { get; набор; }
общедоступная строка ModelName { get; набор; }
публичная десятичная цена { get; набор; }
static List‹Car› carList = null;
static Car()
{
carList = new List‹Car›(){
new Car()
{< br /> Id = 1,
Name = “BMW”,
ModelName = “BMW S1”,
Price = 125000
}
};
}
public static List‹Car› SelectCarList()
{
return carList;
}
}
- Теперь мы изменим код для страницы Car Index.chtml следующим образом, чтобы отобразить информацию об автомобиле в списке:
@model IEnumerable‹SimpleDotNetCoreMVCApp.Models.Car›
@{
ViewData["Title"] = "Index";
}
‹h2›Индекс‹/h2›
‹p›Привет из нашего шаблона представления!‹/p›
‹table class="table"›
‹tr›
‹th›
@Html.DisplayNameFor(model = › model.Name)
‹/th›
‹th›
@Html.DisplayNameFor(model =› model.ModelName)
‹/th›
‹th ›
@Html.DisplayNameFor(model =› model.Price)
‹/th›
‹th›‹/th›
‹/tr›
@foreach (элемент var в модели)
{
‹tr›
‹td›
@Html.DisplayFor(modelItem =› item.Name)
‹/td ›
‹td›
@Html.DisplayFor(modelItem =› item.ModelName)
‹/td›
‹td›
@Html.DisplayFor(modelItem = › ст.Цена)
‹/тд›
‹/тр›
}
- Запустите еще раз и нажмите на ссылку Car, и теперь вы можете увидеть список автомобилей:
- В этом учебном пособии базовый проект ASP.Net Core MVC, и мы изучим Core MVC в следующем расширенном учебном пособии.
Спасибо за прочтение. Напишите мне свои вопросы, мысли или отзывы в разделе комментариев. Я ценю ваши отзывы и поддержку.
Продолжайте учиться…. !!!