ASP.NET Core MVC — это облегченная платформа с открытым исходным кодом и хорошо тестируемой, которая легко интегрируется с ASP.NET Core.

ASP.NET Core MVC предоставляет основанный на шаблонах способ создания динамических веб-сайтов, который обеспечивает четкое разделение задач. Он дает нам полный контроль над разметкой, поддерживает разработку через тестирование и соответствует последним веб-стандартам.

Предпосылки

В вашей системе должны быть установлены:

Шаг 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 считывает данные из следующих переменных среды:
  1. 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, чтобы включить один параметр, как показано в следующем коде.

Добавить представление

  • В настоящее время метод Index возвращает строку с сообщением, жестко запрограммированным в классе контроллера. В классе CarController замените метод Index следующим кодом:

Он использует шаблон представления для создания ответа HTML. Методы контроллера, такие как метод Index выше, обычно возвращают IActionResult (или класс, производный от ActionResult), а не тип, подобный строке.

  • Щелкните правой кнопкой мыши папку Views, а затем Add › New Folder и назовите папку Car.

  • Щелкните правой кнопкой мыши папку Views/Car, затем нажмите Добавить и выберите Новый элемент. В диалоговом окне «Добавить новый элемент» выберите Razor View, сохраните значение поля имени Index.cshtml и нажмите «Добавить».

  • Замените содержимое файла представления Razor Views/Car/Index.cshtml следующим:

  • Добавьте новую ссылку на нашу страницу макета, как показано ниже:

  • Теперь вы можете увидеть ссылку «Автомобиль» в заголовке, и вы можете перенаправить вид автомобиля, чтобы щелкнуть ссылку «Автомобиль».

Добавить модель

  • Вы добавляете классы для управления автомобилями в базу данных. Эти классы будут частью «Модели» приложения -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 в следующем расширенном учебном пособии.

Спасибо за прочтение. Напишите мне свои вопросы, мысли или отзывы в разделе комментариев. Я ценю ваши отзывы и поддержку.

Продолжайте учиться…. !!!