文档链接如下:
https://docs.microsoft.com/zh...
模型中的字段设置了required,就必须不为null,结果又有问号修饰符表示字段可以为null?这两个组合在一起不是矛盾吗?有点不理解😵,感觉文档中这种情况用一个问号修饰符就行了好像不需要required呀,前端传了值就赋传的值,没传就赋null,就能区分“零”和“未设置”了:
还有就是字段的4种不同情况没搞太明白--没有required没有问号,有问号没有required,有required没有问号,有required有问号
看你这个 Model 用在哪儿了。
比如它可能是个 ViewModel,放在 aspx 里充当表单绑定的模型使用。
如果你定义成
double
类型,那么这个表单的输入框里就会显示默认值0
、而不是空;定义成double?
了才会初值是空。而[Required]
特性表明这个字段在提交表单时必须要有值。再比如它可能是个 DTO,在 Service 中传递时允许该字段为空、但客户端 POST 时必须赋值。
现如今前后端分离很流行,后端只提供 WebAPI 的话这么写就没什么太大用处了。也不推荐 DTO 之类的模型复用 Request Model。