C# Web API将类型不匹配的参数解析为缺少

C# Web API将类型不匹配的参数解析为缺少,c#,asp.net-core-webapi,asp.net-core-mvc-2.0,C#,Asp.net Core Webapi,Asp.net Core Mvc 2.0,我正在使用ASP.NET Core托管一个Web API。我在订单控制器中定义了以下操作: [HttpGet("list")] public List<Order> List([FromQuery] int index = 0, [FromQuery] int length = 100) { return GetOrders(index, length); } 以下返回100个订单: https://localhost:5000/api/v1/Orders/list?ind

我正在使用ASP.NET Core托管一个Web API。我在订单控制器中定义了以下操作:

[HttpGet("list")]
public List<Order> List([FromQuery] int index = 0, [FromQuery] int length = 100)
{
    return GetOrders(index, length);
}
以下返回100个订单:

https://localhost:5000/api/v1/Orders/list?index=0&length=a
对于请求,任何无法转换为声明类型的参数都将被视为丢失,从而导致使用上述示例中的默认值,或值类型默认值,或引用类型为null

在这种情况下,最好在使用不匹配的参数类型执行请求时失败,而不是使用默认值/空值继续执行


有没有办法修改此行为?

此链接全面介绍了模型绑定在web api中的工作方式:


基于此,我认为您需要一个自定义模型绑定器,当它无法转换值时会抛出异常

此链接全面介绍了模型绑定在web api中的工作原理:


基于此,我认为您需要一个自定义模型绑定器,当它无法转换值时会抛出异常

尝试使用nullable int,看看它是否有帮助,但在探索这个问题时,我发现这也扩展到了nullable参数。尝试使用nullable int,看看它是否有帮助,但在探讨这个问题时,我发现这也扩展到了可为null的参数。自定义模型绑定确实是调查传入请求的方法。然而,遗憾的是,试图覆盖所有可能的数据类型似乎是徒劳的。无论如何谢谢你!自定义模型绑定确实是调查传入请求的方法。然而,遗憾的是,试图覆盖所有可能的数据类型似乎是徒劳的。无论如何谢谢你!
https://localhost:5000/api/v1/Orders/list?index=0&length=a