我通过以下操作创建了一个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; }
}
现在我用自大来测试这一点,基本上,上面的内容并不像我认为的那样有效。当我用招摇过市的方式提交一个GET请求并查看模型中的值时,会发现只捕获了名称。纬度和经度的值为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
变量,而这个变量也不需要
[来自查询]