C# 验证操作的参数类型并发送自定义BadRequest“该字段不是数字”

C# 验证操作的参数类型并发送自定义BadRequest“该字段不是数字”,c#,asp.net-core,swagger,asp.net-core-webapi,C#,Asp.net Core,Swagger,Asp.net Core Webapi,Put操作是用参数类型int定义的,当发送字符串时,我需要响应一个自定义的BADDREQUEST消息,该响应应该只针对一个控制器 [HttpPutaddress] [授权] [产品响应客户类型,200] [产品响应类型错误,400] [ProducesResponseTypeOfError,404]//自定义错误 [ProductsDefaultResponseType] 公共异步任务UpdateAddress [必填][FromForm]字符串电子邮件, [必填][FromForm]字符串地址

Put操作是用参数类型int定义的,当发送字符串时,我需要响应一个自定义的BADDREQUEST消息,该响应应该只针对一个控制器

[HttpPutaddress] [授权] [产品响应客户类型,200] [产品响应类型错误,400] [ProducesResponseTypeOfError,404]//自定义错误 [ProductsDefaultResponseType] 公共异步任务UpdateAddress [必填][FromForm]字符串电子邮件, [必填][FromForm]字符串地址_1, [FromForm]字符串地址_2, [必填][FromForm]字符串城市, [Required][FromForm]字符串区域, [必填][FromForm]字符串邮政编码, [必填][FromForm]字符串国家/地区, [Required][FromForm]int shipping\u region\u id//这是要验证的参数 { //... } BadRequest 400消息应为:配送区域ID不是编号
如何在到达控制器并发送自定义BadRequest对象之前验证类型?

使用DTO进行PUT请求并像这样传递参数

公共类UpdatedDressdTo { [必需] 公共字符串电子邮件{get;set;} [必需] 公共字符串地址_1{get;set;} [必需] 公共字符串地址_2{get;set;} [必需] 公共字符串city{get;set;} [必需] 公共字符串区域{get;set;} [必需] 公共字符串邮政编码{get;set;} [必需] 公共字符串国家{get;set;} } [Routeaddress/{shipping_region_id}/update] 公共异步任务UpdateAddress[FromUri]int shipping\u region\u id[FromBody]UpdateAddressDTO model { }
问题是什么?首先,这不是一个post请求。其次,您可以使用model for post方法,而不是参数,您可以在其中为模型中的每个属性标识自定义验证程序。是的,我想更改为一个模型,但它已定义为如何发送自定义badrequest?@alvan return badrequest发货区域ID不是一个数字;哪里无论如何,我用一个ActionFilterAttribute解决了这个问题,比如:@alvan,这也可以是另一种解决方法。很高兴你找到了,它正在为你工作。你能把我的上述解决方案标为答案吗?对不起,这没有用