ASP.net MVC数据注释DateTime默认值

时间:2010-12-04 04:40:06

标签: asp.net-mvc data-annotations

在我的视图模型中,我有以下属性:

 [Required]
 [DataType(DataType.Date, ErrorMessage="Please enter a valid date in the format dd/mm/yyyy")]
 [Display(Name = "Date of Birth")]
 public DateTime DOB { get; set; }

在我看来,我有以下内容:

<div class="editor-label">
    @Html.LabelFor(model => model.DOB)
</div>
<div class="editor-field">
    @Html.EditorFor(model => model.DOB)
    @Html.ValidationMessageFor(model => model.DOB)
</div>

在提交表单之前,DOB的默认值是1/01/0001如何停止自动填充此值,我只想在人们访问此表单时使用空字段?

3 个答案:

答案 0 :(得分:7)

我相信你必须使用可以为空的DateTime?类型。 DateTime不能为null,因此它总是有一个值。

答案 1 :(得分:6)

尝试使DOB DateTime像@Mayo状态一样可以为空:

public DateTime? DOB { get; set; }

答案 2 :(得分:1)

DateTime的类型为struct。因此,默认情况下DateTime不能为null。它的默认值等于&#39; 01/01 / 0001&#39;。 您的问题的解决方案是使用可空的DateTime?类型。 如果您希望它默认为某些值,例如&#39; 01/01/2014&#39;,那么您可以分配如下值: DOB = new DateTime(2014,01,01);