2011-09-26 52 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

相關問題