.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);

这个方法能解决问题。

方法三

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

相关推荐
她说彩礼65万8 小时前
Asp.net core 模型绑定
后端·asp.net
疯狂成瘾者8 小时前
Java 常见集合方法
java·windows·python
asdzx678 小时前
使用 Python 精准操控 Word 字体:获取与替换方案
python·c#·word
时代的狂8 小时前
如何理解 ASP.NET Core 请求生命周期
asp.net·请求生命周期
时代的狂9 小时前
ASP.NET Core 认证与授权(三):请求认证与权限校验
asp.net·.net core·web api·认证与授权
倒流时光三十年9 小时前
MyBatis @MapKey 注解详解
windows·mybatis
生活、追梦者9 小时前
【Windows】 CMD 黑窗口命令大全
windows·命令行·cmd·运维技巧
逝水无殇10 小时前
C# 特性详解
开发语言·后端·c#
LongtengGensSupreme11 小时前
C#图像内存高速拷贝:使用Marshal.AllocHGlobal与ArrayPool实现内存拷贝的几个方法
开发语言·数码相机·c#
影寂ldy13 小时前
C# 五大加密算法全套实战(AES/DES对称、RSA非对称、MD5/SHA256哈希)
开发语言·c#·哈希算法