在我的视图模型中,我有以下属性:
[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如何停止自动填充此值,我只想在人们访问此表单时使用空字段?
答案 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);