ASP.Net Core 6 HttpGet API:如何将[FromQuery]参数绑定到object属性
解决方案
默认情况下,ASP.NET Core会将查询字符串中的Equal=50绑定为**string类型的"50"**到Filter的Equal属性上。如果需要将其绑定为对应数值类型(如int),或确保值能正确绑定到object属性,可通过以下方式实现,无需编写自定义模型绑定器:
方法1:使用类型提示格式的查询参数
ASP.NET Core支持在查询参数值中通过[类型标识]:[值]的格式指定目标类型,绑定系统会自动将值转换为对应类型并赋值给object属性。
修改请求URL为:
https://localhost:7134/api/test?Equal=int:50
此时Equal属性会被绑定为int类型的50。同理,其他类型也适用,比如:
- 浮点数:
Equal=decimal:50.5 - 布尔值:
Equal=bool:true
方法2:利用默认绑定行为接收字符串值
如果业务场景允许Equal接收字符串类型的"50",原请求URL无需修改——ASP.NET Core会自动将50作为字符串绑定到Equal属性上,后续可在代码中根据需要自行转换类型。
内容的提问来源于stack exchange,提问作者Milad Rashidi
相关产品推荐
相关产品推荐

