Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
}
}
Атрибут Bind
Атрибут
Bind
Bind
Include
Bind
В следующем примере метода действия
Create()
Car
Bind
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Create(Car car)
{
if (ModelState.IsValid)
{
// Добавить запись.
}
// Позволить пользователю повторить попытку.
}
Пусть в ваших бизнес-требованиях указано, что методу
Create()
PetName
Color
Bind
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(
<b>[Bind(nameof(Car.PetName),nameof(Car.Color))]Car car)</b>
{
if (ModelState.IsValid)
{
// Сохранить данные.
}
// Позволить пользователю повторить попытку.
}
Атрибут
Bind
Bind
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(
[Bind<b>(Prefix="MakeList")</b>]Car car)
{
if (ModelState.IsValid)
{
// Сохранить данные.
}
}
Управление источниками привязки моделей в ASP.NET Core
Источниками привязки можно управлять через набор атрибутов на параметрах действий. Допускается также создавать специальные средства привязки моделей, но эта тема выходит за рамки настоящей книги. В табл. 29.4 перечислены атрибуты, которые можно использовать для управления привязкой моделей.

Проверка достоверности моделей
Проверка достоверности происходит немедленно после привязки модели (явной и неявной). В то время как привязка модели добавляет ошибки в словарь
ModelState
ModelState
Правила проверки достоверности устанавливаются через атрибуты проверки достоверности, встроенные или специальные. В табл. 29.5 кратко описаны наиболее часто используемые встроенные атрибуты проверки достоверности. Обратите внимание, что некоторые их них также служат аннотациями данных для формирования сущностей EF Core.

Можно также разработать специальные атрибуты проверки достоверности, но в книге данная тема не рассматривается.
Маршрутизация
Маршрутизация — это способ, которым ASP.NET Core сопоставляет HTTP-запросы с контроллерами и действиями (исполняемые конечные точки) в вашем приложении взамен старого процесса отображения URL на структуру файлов проекта, принятого в Web Forms. Она также предлагает механизм для создания URL изнутри приложения на основе таких конечных точек. Конечная точка в приложении MVC или Web API состоит из контроллера, действия (только MVC), метода HTTP и необязательных значений (называемых значениями маршрута).
На заметку! Маршруты также применяются к страницам Razor, SignaIR, службам gRPC и т.д. В этой книге рассматриваются контроллеры стиля MVC и Web API.
Инфраструктура ASP.NET Core использует промежуточное ПО маршрутизации для сопоставления URL входящих запросов и для генерирования URL, отправляемых в ответах. Промежуточное ПО регистрируется в классе
Startup
Startup
Шаблоны URL и маркеры маршрутов
Конечные точки маршрутизации состоят из шаблонов URL, включающих в себя переменные-заполнители (называемые маркерами) и литералы, которые помещены в упорядоченную коллекцию, известную как таблица маршрутов. Каждая запись в ней определяет отличающийся шаблон URL, предназначенный для сопоставления. Заполнители могут быть специальными переменными или браться из заранее определенного списка. Зарезервированные маркеры маршрутов перечислены в табл. 29.6.

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