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