Web API 将类型不匹配的参数解析为缺失
Web API resolves parameters with mismatched types as missing
我正在使用 ASP.NET Core 来托管 Web API。我的订单控制器中定义了以下操作:
[HttpGet("list")]
public List<Order> List([FromQuery] int index = 0, [FromQuery] int length = 100)
{
return GetOrders(index, length);
}
以下returns单单:
https://localhost:5000/api/v1/Orders/list?index=0&length=1
以下returns 100个订单:
https://localhost:5000/api/v1/Orders/list?index=0&length=a
似乎对于请求,任何无法转换为声明类型的参数都将被视为缺失,从而导致使用上面示例中的默认值,或值类型默认值,或引用类型为 null。
在这种情况下,最好让请求在使用不匹配的参数类型执行时失败,而不是让它继续使用 default/null 个值。
有没有办法修改这种行为?
此 link 全面描述了模型绑定在网络中的工作原理 api:
https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api
基于此,我会说您需要一个自定义模型联编程序,该联编程序在无法转换值时抛出异常。
我正在使用 ASP.NET Core 来托管 Web API。我的订单控制器中定义了以下操作:
[HttpGet("list")]
public List<Order> List([FromQuery] int index = 0, [FromQuery] int length = 100)
{
return GetOrders(index, length);
}
以下returns单单:
https://localhost:5000/api/v1/Orders/list?index=0&length=1
以下returns 100个订单:
https://localhost:5000/api/v1/Orders/list?index=0&length=a
似乎对于请求,任何无法转换为声明类型的参数都将被视为缺失,从而导致使用上面示例中的默认值,或值类型默认值,或引用类型为 null。
在这种情况下,最好让请求在使用不匹配的参数类型执行时失败,而不是让它继续使用 default/null 个值。
有没有办法修改这种行为?
此 link 全面描述了模型绑定在网络中的工作原理 api: https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api
基于此,我会说您需要一个自定义模型联编程序,该联编程序在无法转换值时抛出异常。