用数据注释分配DateTime格式?
我在我的视图模型中有这个属性:
[DataType(DataType.DateTime)] public DateTime? StartDate { get; set; }
如果我想显示date,或用date填充文本框,我有这些:
<%: Model.StartDate %> <%: Html.TextBoxFor(m => m.StartDate) %>
每当显示date时,显示如下: 01/01/2011 12:00:00 AM
但我只想显示01/01/2011
有没有办法使用数据注释显示格式? 我不想去每个显示date的实例,并添加一些代码来格式化它。
尝试使用以下标签标记:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
你试过这个吗?
[DataType(DataType.Date)]
在MVC 4中,你可以很容易地使用TextBoxFor
@Html.TextBoxFor(m => m.StartDate, "{0:MM/dd/yyyy}", new { @class = "form-control default-date-picker" })
因此,您不需要在模型或视图模型类中使用任何数据注释
应用DataAnnotation,如下所示:
[DisplayFormat(DataFormatString = "{0:MMM dd, yyyy}")]
使用这个,但它是一个完整的解决scheme:
[DataType(DataType.Date)] [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
如果您的数据字段已经是DateTime数据types,则不需要使用[DataType(DataType.Date)]
作为注释; 只是使用:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
在jQuery上,使用datepicker为你的日历
$(document).ready(function () { $('#StartDate').datepicker(); });
在你的HTML上,使用EditorFor
帮手:
@Html.EditorFor(model => model.StartDate)
使用EditorFor而不是TextBoxFor
评论之后
// [DataType(DataType.DateTime)]
使用数据注释属性:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
以下链接的STEP-7可能会帮助你…
http://ilyasmamunbd.blogspot.com/2014/12/jquery-datepicker-in-aspnet-mvc-5.html
在创build模型时使用下面的代码来设置你的属性,我认为你的问题将被解决,而且时间不会出现在数据库中,你不需要添加任何注释。
private DateTime? dob; public DateTime? DOB { get { if (dob != null) { return dob.Value.Date; } else { return null; } } set { dob = value; } }