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

这个方法能解决问题。

方法三

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

相关推荐
玖石书2 小时前
ASP.NET Core迁移Spring对照系列:文件系统操作篇
spring·asp.net
Chen—LSN3 小时前
C语言——深度理解指针(6)
c语言·开发语言·算法·c#
仙人球部落 揞殺12 小时前
细说ASP.NET的各种异步操作
后端·asp.net
90后小陈老师13 小时前
Windows 10 下 Gitee SSH 连接配置详解(附常见问题解决)
windows·gitee·ssh
在世修行14 小时前
从零打造 C# 工业视觉检测系统(八):Modbus RTU 协议解析与 PLC 剔除控制实战
开发语言·c#
Light Gao15 小时前
MCPHub 路由原理:一个入口如何管理并调用上百个 MCP Server
windows·microsoft
郭涤生16 小时前
Windows + Ubuntu 双系统启动故障修复
linux·windows·ubuntu
花落人散处18 小时前
CDiskClean 开发历程——忽略进程_拖拽功能实现参考
c#
xcLeigh20 小时前
Unity基础:C#脚本的创建与挂载——让你的游戏物体活起来
游戏·unity·c#·教程
花落人散处20 小时前
CDiskClean 开发历程——文件&进程实时监控-实现方案参考
c#