Если эти параметры должны быть в запросе , тогда они не нужны в шаблоне route
In
[HttpGet("{page}&{pageSize}&{predicate}", Name = "GetBuildingsBySearchCriteria")]
"{page}&{pageSize}&{predicate}"
являются заполнителями в шаблоне route , поэтому [FromQuery]
не может связать параметры.
[FromHeader]
, [FromQuery]
, [FromRoute]
, [FromForm]
: Используйте их, чтобы указать точный источник привязки, который вы хотите применить .
выделение шахты
На основеВ приведенном примере URL-адреса и в предположении корневого маршрута можно использовать
[Route("api/[controller]")]
public class BuildingsController: Controller {
//GET api/buildings?page=1&pageSize=10&predicate=fr
[HttpGet("", Name = "GetBuildingsBySearchCriteria")]
public IActionResult GetBuildingsBySearchCriteria(
[FromHeader]string idUser,
[FromQuery]int page,
[FromQuery]int pageSize,
[FromQuery]string predicate) {
//....
}
}
или, в качестве альтернативы, их можно использовать в маршруте, например
[Route("api/[controller]")]
public class BuildingsController: Controller {
//GET api/buildings/1/10/fr
[HttpGet("{page:int}/{pageSize:int}/{predicate}", Name = "GetBuildingsBySearchCriteria")]
public IActionResult GetBuildingsBySearchCriteria(
[FromHeader]string idUser,
[FromRoute]int page,
[FromRoute]int pageSize,
[FromRoute]string predicate) {
//....
}
}
Ссылка Привязка моделив ASP.NET Core