如果我有一处房产:

public int? Test { get; set; }

与之相对应的自负定义是:

test    integer($int32)
        nullable: true

但是,当我添加[Required]属性时:

[Required]
public int? Test { get; set; }

我的傲慢定义是:

test*   integer($int32)

为什么它不再可为空?

推荐答案

您正在使用的[Reqiured]属性强制该值不是null.

根据前documentation名:

RequiredAttribute属性指定在验证表单上的字段时,该字段必须包含一个值.如果属性为空、包含空字符串("")或仅包含空格字符,则会引发验证异常.

Csharp相关问答推荐

等待限制选项似乎不适用于频道

AutoMapper -如何为两个不同的用例设置单个映射?

为什么我不能更改尚未设置的模拟对象属性的值?

如何从HttpContext获取请求正文

为什么总输出就像12.3没有一分一样?

限制特定REST API不被访问,但部署代码

应用程序重新启动后,EFCore列表的BSON反序列化错误

Automapper 12.x将GUID映射到字符串

在C#中反序列化/序列化具有混合元素顺序的XML时出现问题

用于管理System.Text.Json中的多态反序列化的自定义TypeInfoResolver

DateTime ToString()未以指定格式打印

当使用Dapper映射DBNull时,我可以抛出异常吗?

使用C#和.NET 7.0无法访问Cookie中的数据

发布.NET 8 Blazor WebAssembly独立应用程序以进行静态站点部署

从Base64转换为不同的字符串返回相同的结果

.NET Google Workspace API获取错误CS0266

如何在C#中正确类型化带有泛型的嵌套类

C#中类库项目的源代码生成器

为什么在使用JsonDerivedType序列化泛型时缺少$type?

毛伊岛.NET 8图片不再适合按钮