Как правильно передать несколько параметров в контроллер на ASP.NET Core 3?

Пишу RTB (аукцион в режиме реального времени) приложение, (если кому интересно, то вот ссылка на спецификацию). Вопрос, как правильно будет передать в контроллер n-кол-во параметров (например, 25 или 50) на ASP.NET Core 3.1 (.Net Framework 5).

Пока придумал только 2 варианта:

  1. Передавать все параметры, как переменные (т.е. указать в контроллере все необходимые параметры)
  2. Создать модель, заполнить ее, а потом в контроллер передать уже подготовленную модель

Ответы (1 шт):

Автор решения: A K

Вместо того, чтобы объявлять 25 или 50 параметров в экшене (больше трёх стараются не делать для читаемости) объявите класс Request в котором объявите все эти свойства:

public class Request
{
   property string FirstName { get; set; }
   property string LastName { get; set; }
   property string MiddleName { get; set; }
   // ....
}

И укажите в качестве параметра вашего экшена:

public IActionResult MyAction(Request request)
{
   // ...
}

Если же параметры единообразны - используйте массивы:

public class Request
{
   property string FirstName { get; set; }
   property string LastName { get; set; }
   property string MiddleName { get; set; }

   property int[] Ids { get; set; }
   // ....
}

И не знаю, ваше ли дело кто и как будет это в контроллер передавать... То ли это внешний javascript будет, толи это вы сами будете вызывать из какого-то кода, но каков вопрос — таков ответ.

→ Ссылка