我在使用MVC3 DateTime
对象正确显示日期时遇到了一些问题。
在控制器中,我设置了 Date = DateTime.Now
。
在ViewModel中:
[Required(ErrorMessage = "Please enter a date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.mm.yyyy}")]
public DateTime Date { get; set; }
在视图中:
@Html.LabelFor(m => Model.Date, "Date")
@Html.ValidationMessageFor(m => Model.Date)
@Html.TextBoxFor(m => Model.DatoForIntervju, new { @class = "datepicker" })
输出:
<input class="datepicker" (...) value="26.09.2011 13:26:16" />
但是,我希望该值 26.09.11 。
为什么不起作用?
答案 0 :(得分:17)
变化
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.mm.yyyy}")]
到
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.MM.yy}")]
然后,使用
而不是textboxfor@Html.EditorFor(m => m.Date)
答案 1 :(得分:3)
你的viewModel正确(如果你想在C#中显示短年,你只需要使用“yy”),但我不明白你对这段代码做了什么
@Html.LabelFor(m => Model.Date, "Date")
@Html.ValidationMessageFor(m => Model.Date)
@Html.TextBoxFor(m => Model.DatoForIntervju, new { @class = "datepicker" })
我向您展示了如何添加 datepicker
,在此示例中 date
显示并以正确格式从视图返回:
@Html.EditorFor(m => m.Date)
@Html.ValidationMessageFor(m => m.Date)
<script type="text/javascript">
$(document).ready(function () {
$('#Date').datepicker({ firstDay: 1, dateFormat: 'dd.mm.yy', clickInput: true });
});
</script>