如何解决FromQueryAttribute枚举参数抛出validation_error无效值,但是带有FromBodyAttribute的参数没有?
在ASP.NET Core中,如果一个操作直接接受一个枚举类型,并且该枚举例如已将1
定义为某种值,则如果我们传递一个不同于1的值,则会收到验证错误。
这很好!但是,当枚举是在复杂对象类型内部,从请求的主体([FromBody]
属性)构建它们时,这种方法就不起作用。
为什么会这样?我知道JSON转换器正在处理来自正文的任何内容。当查询联编程序(它是什么/在哪里?)时,为什么他们不能为我们处理呢?
示例枚举:
public Enum Example
{
One = 1
}
示例操作:
public object ExampleAction(Enum hello)
{
return Ok();
}
如果您通过HTTP请求执行该操作,并在查询字符串中传入hello
参数,且该查询字符串的值不同于1,则会收到验证错误。
现在,如果使用hello
属性注释[FromBody]
参数并发出新请求(此时通过正文而不是查询字符串传递数据),则该行为将丢失。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。