我试图阻止时间在使用DateTime的生日文本字段中显示
- <label for="birthday">Birthday:</label>
- @Html.TextBox("birthday",(Model.Birthday.ToString()),new { @class = "datePicker" })
Javascript:
- $(document).ready(function () {
- $('.datePicker').datepicker({ showOn: 'both',buttonImage: "/content/images/calendar-red.gif" });
- });
我有模型设置的日期:
- [DataType(DataType.Date)]
- public DateTime? Birthday { get; set; }
仍然显示文本框中的文本:
“8/21/2010 12:00:00 AM”
我想要文本框中的文本只显示为:
“2010年8月21日”
我试过一切从:
- @inherits System.Web.Mvc.WebViewPage<System.DateTime>
但不要让我这样做,因为我是一个模型
解决方法
我将在视图模型上使用编辑器模板和数据注释来指定格式,使视图更清晰:
- [DataType(DataType.Date)]
- [DisplayName("Birthday:")]
- [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}",ApplyFormatInEditMode = true)]
- public DateTime? Birthday { get; set; }
然后在你的看法:
- <span class="datePicker">
- @Html.LabelFor(x => x.Birthday)
- @Html.EditorFor(x => x.Birthday)
- </span>
然后调整选择器,因为文本框将不再具有datePicker类:
- $('.datePicker :text').datepicker({
- showOn: 'both',buttonImage: "/content/images/calendar-red.gif"
- });