Sobes.tech
Back to questions
Junior — Middle
69

Каким образом входящий запрос преобразуется в параметры метода в контроллере?

Companies where asked
AndersenAndersen

Answer from AI

sobes.tech AI

В ASP.NET контроллеры получают параметры методов из входящих HTTP-запросов с помощью механизма привязки моделей (model binding).

Когда приходит запрос, фреймворк анализирует данные из разных источников:

  • Параметры строки запроса (query string)
  • Тело запроса (например, JSON или form-data)
  • Заголовки
  • Маршрутные параметры

И пытается сопоставить их с параметрами метода контроллера по имени и типу.

Например, если метод контроллера выглядит так:

public IActionResult GetUser(int id, string name)

То фреймворк будет искать в запросе параметры id и name и автоматически преобразует их в нужные типы.

Для сложных объектов можно использовать атрибуты [FromBody], [FromQuery] и т.д., чтобы явно указать источник данных.

Пример:

[HttpPost]
public IActionResult CreateUser([FromBody] UserModel user)

Здесь JSON из тела запроса будет десериализован в объект UserModel и передан в метод.