.net 7.0 解决“The keyword field is required”的问题

在 .net 3.1项目的时候,使用 keyword 做 API 接口的模糊匹配,能够传入keyword = "" 进行整表查询。但当我在 .net 7.0 项目中这么使用的时候,传入 keyword 不为空时能够进行匹配,但是当我传入 keyword = "" 的时候就报错 "The keyword field is required"。

直接上报错截图

方法一

在网上找了解决办法:找到项目的属性>生成>常规>可为null类型,把可为null类型设置为启动。

但是这个只适用于.net 8.0或更高版本,对于我的 .net 7.0版本的没作用。

方法二

然后找到解决方法二、在控制器的依赖住入中,把 SuppressImplicitRequiredAttributeForNonNullableReferenceTypes 值设置为 true,即在Program文件中,输入下面的代码:

复制代码
builder.Services.AddControllers(options => 
options.SuppressImplicitRequiredAttributeForNonNullableReferenceTypes = true);

这个方法能解决问题。

方法三

其实要不了这么麻烦,遇到这个问题时,我忘记了还有一个可空类型参数(无语的笑了)。只需给参数的类型设置成可空就行了,操作如下

相关推荐
花北城7 分钟前
【C#】ABP框架服务端开发
开发语言·c#·abp
xiaoliuliu123451 小时前
Sketchpad 5.0.6 几何画板安装版配置教程 Windows版:部署+桌面快捷方式创建指南
windows
惊鸿一博2 小时前
网络端口开放访问权限_Windows 11 上确保防火墙允许指定端口如3001可被访问
网络·windows
xiaoshuaishuai82 小时前
C# vCenter跨云迁移的核心问题
开发语言·c#
旧物有情3 小时前
C#异步编程
网络·rpc·c#
软件无线电小方圆4 小时前
Windows下基于PyQt6上位机开发环境搭建
windows
蜀道山老天师5 小时前
OpenClaw Skills 技能开发 + 企业运维全场景实战(进阶篇)
人工智能·windows·microsoft
舟遥遥娓飘飘5 小时前
文稿起草系统,离线学习写作人的“思维 + 风格“,按学到的特征起草新文稿,再用反馈闭环持续提升
windows·学习
影寂ldy5 小时前
C# 三大内置委托(Action / Func / Predicate)+ Lambda
c++·算法·c#
至此流年莫相忘5 小时前
Windows 环境下 RocketMQ 安装与 NSSM 后台服务化部署指南
windows·rocketmq