我有以下剃刀
<td>@Html.TextBoxFor(m => m.MeetingToEdit.StartTime, new { @class = "datetimepicker form-control", @Value = Model.MeetingToEdit.StartTime })</td>
我从Controller访问日期
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult UpdateMeetingWithId([Bind(Prefix = "MeetingToEdit")]Meeting model)
{
Meeting meeting = meetingsContext.Meetings.Where(a => a.Id == model.Id).First();
meeting.Title = model.Title;
meeting.StartTime = model.StartTime;
meeting.EndTime = model.EndTime;
meetingsContext.Entry(meeting).State = System.Data.Entity.EntityState.Modified;
meetingsContext.SaveChanges();
return RedirectToAction("ReinviteVisitor2", "Home", new { visitorId = model.SubjectId });
}
因此,在调试chtml时,Model.MeetingToEdit.StartTime是正确的,但当它显示在网页的文本框中时,它是错误的并且变为&#34; 1月14日0044 12:00 AM&#34;。确保在文本字段中正确显示日期时间的正确方法是什么?
编辑: 我正在使用bootstrap datetimepicker,它配置如下:
<script>
$(document).ready(function () {
$('.datetimepicker').datetimepicker({
format: 'lll'
});
});
</script>
答案 0 :(得分:0)
明确指定日期格式,即
@ Html.TextBoxFor(m =&gt; m.MeetingToEdit.StartTime.ToString(&#34; M / d / yyyy&#34;),new {@class =&#34; datetimepicker form-control&#34; ,@ Value = Model.MeetingToEdit.StartTime})
`some other formats u can apply like :
//没有/带前导零的月/日数字 的String.Format(&#34; {M / d / yyyy的}&#34); //&#34; 3/9/2008&#34; 的String.Format(&#34; {MM / DD / YYYY}&#34); //&#34; 03/09/2008&#34;
//日/月名 String.Format(&#34; {ddd,MMM d,yyyy}&#34;); //&#34; Sun,2008年3月9日&#34; String.Format(&#34; {dddd,MMMM d,yyyy}&#34;); //&#34; 2008年3月9日星期日&#34;
//两/四位数年份 的String.Format(&#34; {MM / DD / YY}&#34); //&#34; 03/09/08&#34; 的String.Format(&#34; {MM / DD / YYYY}&#34); //&#34; 03/09/2008&#34; `
答案 1 :(得分:0)
结帐this link。基本上你有两个选择。在视图模型中设置DisplayFormat
注释以定义日期格式。在这种情况下,您需要在视图中使用EditorFor
辅助方法,而不是TextBoxFor
。
第二个选项是将日期格式传递给TextBoxFor
辅助方法。在providede链接中有一些例子。