我在我的 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; }
我没有对其应用[必填]数据注释,但是当我尝试保存表单时,它显示必填字段。在数据库中它为空。
请提出解决方案。
最佳答案
这很正常。 DateTime 是一种值类型,这意味着它始终需要一个值。 ASP.NET MVC 中的模型元数据提供程序会自动将必需的属性添加到不可为 null 的数据类型。您可以使用可为 null 的 DateTime:
[Column("Date Opened")]
[Display(Name = "Date Opened:")]
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime? DateOpened { get; set; }
关于asp.net-mvc-3 - 日期字段给出验证所需的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9239451/