该RequiredAttribute
工程string
,但没有DateTime
。例如:
[Required]
[DisplayFormat(ConvertEmptyStringToNull = false)]
public string Name { get; set; }
[Required]
[DataType(DataType.DateTime)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MMM-yyyy}", ConvertEmptyStringToNull = false)]
public DateTime Birthdate { get; set; }
Run Code Online (Sandbox Code Playgroud)
如果Name
为空,则验证显示错误,但如果Birthdate
为空,则没有任何反应。我在看:
和
但仍然不适用于 DateTime
小智 5
我认为 DateTime 有一个标准值,因此您应该添加一个范围属性,而不是必需的
[Range(typeof(DateTime), "01/01/1900", "01/01/2100", ErrorMessage="Date is out of Range")]
Run Code Online (Sandbox Code Playgroud)
像这样的东西应该可以解决问题
DateTime
是一个结构,结构是“值类型”,而不是“引用类型”,因此它们的默认值不是null
,因为DateTime
它是1/1/0001 12:00:00 AM
,int
其默认值为0
。
string
type 是“引用类型”,所有引用类型的默认值为null
.
因此,如果要检查值类型是否为null
,则应将其创建为Nullable
.
像这样:
public DateTime? Birthdate { get; set; }
Run Code Online (Sandbox Code Playgroud)
或者
public Nullable<DateTime> Birthdate { get; set; }
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6023 次 |
最近记录: |