日期字段在验证时给出所需的错误

Dot*_*row 8 entity-framework-4 entity-framework-4.1 asp.net-mvc-3

我在我的asp.net MVC 3网站上创建了一个模型,并且有一个名为DateOpened的属性:

  [Column("Date Opened")]
        [Display(Name = "Date Opened:")]
        [DataType(DataType.Date)]
        [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
        public DateTime DateOpened { get; set; }
Run Code Online (Sandbox Code Playgroud)

我没有对它应用[Required]数据注释,但是当我尝试保存表单时,它表示必填字段.在数据库中,它为null.

请建议解决方案.

Dar*_*rov 15

这很正常.DateTime是一个值类型,意味着它总是需要一个值.ASP.NET MVC中的模型元数据提供程序会自动将所需属性添加到不可为空的数据类型中.你可以使用一个可以为空的DateTime:

[Column("Date Opened")]
[Display(Name = "Date Opened:")]
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime? DateOpened { get; set; }
Run Code Online (Sandbox Code Playgroud)