2011-09-26 82 views
10

我有一些问题正确显示日期,使用MVC3 DateTime对象。为MVC3设置DataFormatString日期时间

在控制器中,我设置了Date = DateTime.Now

在视图模型:

[Required(ErrorMessage = "Please enter a date")] 
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.mm.yyyy}")] 
public DateTime Date { get; set; } 

在View:

@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" /> 

但是,我想要的值是11年9月26日

它为什么不起作用?

回答

3

您的视图模型正确的(唯一的事情是,你需要使用“YY”如果你想显示在C#短短一年),但我不明白你怎么用这个代码

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

变化

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.mm.yyyy}")] 

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.MM.yy}")] 

然后,而不是textboxfor,使用

@Html.EditorFor(m => m.Date) 
+0

很好的回答!有自己的问题与textboxfor。我发现这是一个有用的字符串格式资源,您可能会发现它有用以供参考:http://www.maconstateit.net/tutorials/aspnet20/ASPNET02/aspnet02-07.aspx – Sparkle

+1

由于'{0:dd.mm .yyyy}'包括时间,也不会有'{0:dd.mm.yy}'? –

+0

是的。格式字符串应该是{0:dd.MM.yyyy}或{0:dd.MM.yy}。 – Suncat2000

相关问题