2011-09-26 27 views
10

Tôi có một số vấn đề với việc hiển thị ngày chính xác, sử dụng đối tượng MVC3 DateTime.Đặt DataFormatString cho MVC3 DateTime

Trong bộ điều khiển, tôi đặt Date = DateTime.Now.

Trong ViewModel:

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

Trong Xem:

@Html.LabelFor(m => Model.Date, "Date") 
@Html.ValidationMessageFor(m => Model.Date) 
@Html.TextBoxFor(m => Model.DatoForIntervju, new { @class = "datepicker" }) 

Output:

<input class="datepicker" (...) value="26.09.2011 13:26:16" /> 

Tuy nhiên, tôi muốn giá trị là 26.09.11.

Tại sao nó không hoạt động?

Trả lời

3

ViewModel của bạn chính xác (chỉ có điều là bạn cần phải sử dụng "yy" nếu bạn muốn hiển thị năm ngắn trong C#), nhưng tôi không hiểu bạn sẽ làm gì với mã này

@Html.LabelFor(m => Model.Date, "Date") 
@Html.ValidationMessageFor(m => Model.Date) 
@Html.TextBoxFor(m => Model.DatoForIntervju, new { @class = "datepicker" }) 

tôi chỉ cho bạn cách tôi thêm datepicker, trong ví dụ này date chương trình và trở về từ cái nhìn ở định dạng chính xác:

@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

thay đổi

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

để

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

Sau đó, thay vì textboxfor, sử dụng

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

Tốt trả lời! Đã có vấn đề này bản thân mình với textboxfor. Tôi thấy đây là một tài nguyên hữu ích cho định dạng chuỗi mà bạn có thể thấy hữu ích để tham khảo: http://www.maconstateit.net/tutorials/aspnet20/ASPNET02/aspnet02-07.aspx – Sparkle

+1

Vì '{0: dd.mm .yyyy} 'bao gồm thời gian, sẽ không' {0: dd.mm.yy} 'cũng? –

+0

Vâng. Chuỗi định dạng phải là {0: dd.MM.yyyy} hoặc {0: dd.MM.yy}. – Suncat2000

Các vấn đề liên quan