Как правильно передать несколько параметров в контроллер?
Помогите разобраться с параметрами контроллера. Есть контроллер
[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;}
}