.NET 7枚举查询参数能否设置为大小写不敏感?
.NET 7 枚举查询参数大小写敏感性调整
.NET 7 默认修改了枚举类型的模型绑定行为,改为大小写敏感,这导致原.NET 6中支持的小写枚举值查询参数无法正常绑定。以下是两种可行的解决方法:
全局生效(推荐)
在 Program.cs 中配置控制器的模型绑定选项,全局设置枚举绑定忽略大小写:
builder.Services.AddControllers(options => { // 设置枚举绑定为大小写不敏感 options.ModelBinding.EnumBinderOptions.MatchBehavior = EnumMatchBehavior.IgnoreCase; });
单个参数生效
若仅需针对特定接口参数调整,可在参数上通过 [FromQuery] 指定绑定行为:
[HttpGet] public ActionResult<string> Get([FromQuery(BindingBehavior = BindingBehavior.IgnoreCase)] MyValues myValue) { return myValue.ToString(); }
配置完成后,?myValue=FirstValue 和 ?myValue=firstvalue 两种格式的查询参数都能正常完成枚举绑定,不会再触发验证错误。
内容的提问来源于stack exchange,提问作者Torben Nielsen
相关产品推荐
相关产品推荐

