如何解决设置Nullable DataTime + MVC + ADO实体框架
|| 我有个麻烦,就是屁股疼。参见下面的代码:<%: Html.TextBoxFor(model => model.birth_date,new { @id = \"datepicker\")%>
<%: Html.ValidationMessageFor(model => model.birth_date)%>
当我提交表格时,birth_date的值是01/01/0001 12:00:00 a.m.我该如何停止呢?我需要一个空白的文本框。
我的模型中有这个:
[MetadataType(typeof(Person_Validation))]
public partial class Person{
}
public class Person_Validation{
[Required(ErrorMessage = \"Needed Date\")]
[DataType(DataType.Date,ErrorMessage = \"Please this format: dd/mm/yyyy\")]
public DateTime? birth_date{
get;
set;
}
}
有人说我只需要在Datatime上添加一个标记(?)或Nullable,但是我做到了。
公开DateTime? birth_date,对我不起作用。拜托我需要你的帮忙!!
我还必须说主要模型Person是由ADO Entity Framework生成的
解决方法
三种可能性:
将数据库中的日期字段更改为可为空,然后重新生成EDMX。
我假设您正在使用Sql Server,则可以将datefield从datetime更改为datetime2。
您可以在将UI呈现给用户之前捕获生日,然后检查DateTime.MinValue
if(model.birth_date == DateTime.MinValue)
{
...制造魔术。
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。