Я создал API со следующим действием:
[HttpGet("GetStuff/{Name}")]
public ActionResult<string> GetStuff([FromRoute]GetStuffModel requestModel)
{
if (requestModel == null) return BadRequest();
var result = doStuff();
return Ok(result);
}
Модель выглядит так:
public class GetStuffModel
{
public string Name { get; set; }
public double Latitude { get; set; }
public double Longitude { get; set; }
public double MyNumber { get; set; }
}
Теперь я использую сваггер, чтобы проверить это, и в основном вышесказанное не работает так, как мне кажется. Что происходит, когда я отправляю запрос на получение с swagger и смотрю на значения в модели, я обнаруживаю, что захватывается только имя. Широта и Долгота имеют значение 0. Однако, если я изменю модель на эту:
public class GetStuffModel
{
public string Name { get; set; }
[FromQuery]
public double Latitude { get; set; }
[FromQuery]
public double Longitude { get; set; }
public double MyNumber { get; set; }
}
Тогда все захватывается. У меня вопрос, почему я должен указывать [FromQuery]
, когда я уже объявил [FromRoute]
в контроллере?
Редактировать: я также добавил MyNumber
переменную, и она также берется без необходимости [FromQuery]