datepicker textfield的值是错误的

时间:2016-07-18 06:15:16

标签: asp.net asp.net-mvc

我有以下剃刀

<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>

2 个答案:

答案 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链接中有一些例子。