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

时间:2012-02-11 10:21:08

标签: asp.net-mvc-3 entity-framework-4 entity-framework-4.1

我在我的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; }

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

请建议解决方案。

1 个答案:

答案 0 :(得分: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; }