我试图阻止时间在使用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" });