ASP.NET MVC 数据注释日期时间默认值
在我的 ViewModel 中,我有以下属性:
[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; }
在我的 View 中,我有以下属性:
<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
,如何阻止自动填充此值,当人们访问此表单时我只想一个空字段?
In my ViewModel I have the following attribute:
[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; }
In my View I have the following:
<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>
Before submitting the form the default value for DOB
is 1/01/0001
, how do I stop this value from being auto-populated, I simply want an empty field when people visit this form?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我相信您将不得不使用可为空的 DateTime?类型。 DateTime 不能为 null,因此它始终有一个值。
I believe you will have to use the nullable DateTime? type. DateTime cannot be null thus it will always have a value.
尝试使 DOB DateTime 可为空,如 @Mayo 所说:
Try making the DOB DateTime nullable like @Mayo states:
DateTime 是结构体类型。因此,默认情况下 DateTime 不能为 null。它的默认值等于“01/01/0001”。
您的问题的解决方案是使用可为空的 DateTime?类型。
如果您希望它默认为“01/01/2014”等某个值,那么您可以分配如下值:
DOB = 新的日期时间(2014, 01, 01);
DateTime is of type struct. So, by default DateTime cannot be null. It has default value equal to '01/01/0001'.
Solution to your problem is to use the nullable DateTime? type.
If you want it to default to some value like '01/01/2014', then you can assign value like:
DOB = new DateTime(2014, 01, 01);