我正在使用带有Razor和EntityFramework的MVC3。为了处理事件调度,我使用jquery datepicker和timepicker来创建StartDate,StartTime,EndDate,EndTime。我试图在我的ViewModel中使用DisplayFormatAttribute但文本框仍然显示整个DateTime字符串。
在我的viewmodel中,我有以下属性:
[DisplayFormatAttribute(DataFormatString = "{0:mm/dd/yyyy}")]
public DateTime StartDate { get; set; }
[DisplayFormatAttribute(DataFormatString = "{0:h:mm tt}")]
public DateTime StartTime { get; set; }
我的观点如下:
<div id="event-datetime-range" style="display:inline">
<span id="event-startdatetime">
@Html.TextBoxFor(model => model.StartDate, new { placeholder = "Start Date", id = "event-start-date", @class = "event-datepicker" });
<span class="event-timerange">at</span>
@Html.TextBoxFor(model => model.StartTime, new { placeholder = "Time", id = "event-start-time", @class = "event-timepicker event-timerange" })
</span>
有谁能告诉我我做错了什么?提前谢谢!
答案 0 :(得分:3)
DisplayFormat
属性用于Html.DisplayFor()
方法,不适用于Html.TextBoxFor
。我建议使用自定义EditorTemplate
来显示您的日期格式。或者使用jQuery。
答案 1 :(得分:1)
如果您使用的是JQuery日期选择器,请在创建控件时使用dateFormat
选项。
同样在日期/时间格式中,“mm”是分钟,其中“MM”是月份。
您可能还想尝试@Html.EditorFor()
而不是@Html.TextBoxFor()
答案 2 :(得分:0)
尝试使用[DisplayFormat(DisplayFormatString={"0:d})]
。