Как правильно передать несколько параметров в контроллер?

Помогите разобраться с параметрами контроллера. Есть контроллер

        [HttpGet]
        public async Task<ActionResult> Auction([FromQuery] int[] ids, [FromQuery] decimal[] price, [FromQuery] string platfrom, AuctionModel auctionModel)
        {
            // Код
        }

можно как нибудь упростить этот код? Мне кажется что тут слшком много [FromQuery], пробовал так, но на выходе была ошибка

 [HttpGet]
        public async Task<ActionResult> Auction([FromQuery] int[] ids, decimal[] price, string platfrom, AuctionModel auctionModel)
        {
            // Код
        }

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

Автор решения: Uranus

[FromQuery] не может быть "слишком много". Их должно быть ровно столько, сколько параметров нужно передать через адресную строку.

С другой стороны, если вы желаете спрятать эти параметры из адресной строки, вы можете изменить атрибут метода на [HttpPost] и передавать параметры в теле запроса в формате form-data или json.

В последнем случае сигнатура метода будет попроще:

[HttpPost]
public async Task<ActionResult> Auction([FromBody] AuctionData data))
{
    // Код
}

public class AuctionData {
    public int[] Ids {get;set;}
    public decimal[] Price {get;set;}
    public string Platform {get;set;}
    public AuctionModel AuctionModel {get;set;}
}
→ Ссылка