C# 8.0 可空(Nullable)给ASP.NET Core带来的坑
2024-08-25 02:35:34
Nullable reference types(可为空引用类型)
可为空引用类型不讲武德
C#8.0 引入了“可为空引用类型”和“不可为空引用类型”,使我们能够对引用类型变量的属性作出重要声明 。
我们只需要修改C#8的项目的文件,添加<Nullable>enable</Nullable>
,示例如下
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
在没增加这个类型前,代码长这样:
添加后
代码就会出现警告,并且生成时也会报告提示:
当我们赋值null给变量,也会提示
如果我们确定引用类型确定不为null,可以添加 感叹号 !
如果想让它可空,我们只需要修改为string?
即可
其他功能参考官网
本文意不在此
在Asp.net core 使用的坑
大意了,没有闪
这么牛批的东西,于是我开开心心在asp.net core 5用上了
然后我就遇到了这个错误
这是一个查询列表方法,查询条件可以是空字符串,我也没有设置[Required]
,这咋就报400错误了捏!
经过仔细排查,发现是可为空引用类型的锅,当开启了可为空引用类型,
这个string 属性就编译成了[Required]
,所以成功被捕捉···
解决方法1
老样子,将属性修改为string?
即可。
解决方法2
如果是大范围修改, 在ConfigureServices方法添加一下代码,关闭不可为空引用类型的属性即可
services.AddControllers(options => options.SuppressImplicitRequiredAttributeForNonNullableReferenceTypes = true);
后记
本人不是大佬,只是道路先行者,在落河后,向后来的人大喊一声,这里有坑,不要过来啊!
纵然如此,依旧有人重复着落河,重复着呐喊······
个人博客网站 Blog
技术交流Q群: 1012481075 群内有各种流行书籍资料
文章后续会在公众号更新,微信搜索 OneByOneDotNet 即可关注。
你的一分鼓励,我的十分动力,点赞免费,感恩回馈。喜欢就点赞评论吧,双击66~
最新文章
- jquery动态添加的html,第三方插件无法生效的情况
- 使用android studio时提示Unable to access Android SDK add-on list
- Windows 8.1 应用再出发 - 几种常用控件
- Javascript 笔记与总结(1-3)arguments
- redhat编译安装cmake
- jq获取元素到底部的距离
- Facade 门面模式 外观模式
- motan源码分析五:cluster相关
- linux服务器之间拷贝文件和文件夹
- 项目总结-timerTask的使用
- python 测试登录接口只返回response200的问题
- 如何上传项目到Git
- python之函数深入探测
- 01List.ashx(班级列表动态页面)
- DOS中的ECHO命令详解
- C语言位操作--不用中间变量交换两数值
- php设计模式-工厂设计模式
- node.js + express 初体验【hello world】
- 电竞大数据平台 FunData 的系统架构演进
- TWaver可视化编辑器的前世今生(三)Doodle编辑器
热门文章
- [leetcode]110BalancedBinaryTree平衡二叉树
- Spring Cloud Config应用篇(九)
- 前端JS获取用户位置
- 10年前,我就用 SQL注入漏洞黑了学校网站
- IndexedDB详解
- DHCP.md
- 基础Markdown语法
- 安装newman error:package exports for &#39;c:\nmp\node_modules\newman\node_module 解决办法
- SSTI
- 修改主机名后VCS的修改