Как правильно передать несколько параметров в контроллер на ASP.NET Core 3?
Пишу RTB (аукцион в режиме реального времени) приложение, (если кому интересно, то вот ссылка на спецификацию). Вопрос, как правильно будет передать в контроллер n-кол-во параметров (например, 25 или 50) на ASP.NET Core 3.1 (.Net Framework 5).
Пока придумал только 2 варианта:
- Передавать все параметры, как переменные (т.е. указать в контроллере все необходимые параметры)
- Создать модель, заполнить ее, а потом в контроллер передать уже подготовленную модель
Ответы (1 шт):
Вместо того, чтобы объявлять 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 будет, толи это вы сами будете вызывать из какого-то кода, но каков вопрос — таков ответ.