Перейти к содержанию

От запроса к модели: делаем запрос полезным

ASP.NET Core обрабатывает запрос, выполняя обработчик страницы. Обработчики страницы — обычные методы C#, поэтому должны вызываться обычным способом. Если у них есть параметры, они получают значения в процессе привязки модели.

Вот пример кода с привязкой модели к свойствам.

public class IndexModel : PageModel
{
    [BindProperty]
    public string Category { get; set; }

    [BindProperty(SupportsGet = true)]
    public string UserName { get; set; }

    public void OnGet() {}

    public void OnPost(ProductModel model) {}   
}

Помеченные атрибутом [BindProperty] свойства будут привязаны к параметрам запросов POST и PUT, помеченные атрибутом [BindProperty(SupportsGet = true)] помимо POST и PUT будут привязаны к запросам GET.
По умолчанию ASP.NET Core использует три разных источника привязки при создании моделей привязки, причем использует их в указанном порядке.

  1. Значения формы — отправляются в теле HTTP-запроса при отправке формы методом POST;
  2. значения маршрута — получаются из сегментов URL-адреса или значений по умолчанию после сопоставления маршрута;
  3. значения строки запроса — передаются в конце URL-адреса и не участвуют в маршрутизации.

При этом используется первое найденное значение модели.
После привязки каждого свойства модель валидируется и передается в свойство объекта PageModel или в качестве параметра обработчику страницы.

Связывание простых типов

Привязка сложных типов

Выбор источника привязки


Последнее обновление : 19 апреля 2023 г.
Дата создания : 23 сентября 2022 г.

Комментарии

Комментарии