2011-09-26 16 views
10

MVC3 DateTime nesnesini kullanarak, tarihi doğru görüntülemekle ilgili bir sorunum var. Denetleyicide, Date = DateTime.Now'u. ViewModel olarakMVC3 DateTime için ayarlama DataFormatString

:

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

Görünüm:

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

Çıktı:

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

Ancak, değer 26.09.11 olmak istiyorum.

Neden çalışmıyor?

cevap

3

Kişisel ViewModel doğru (tek şey size C# kısa yılı göstermek istiyorsanız "yy" kullanmak gerekir ise), ama bu kod

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

Birlikte yapacağız anlamıyorum Ben bu örnekte, date gösterileri datepicker eklemek nasıl göstereceğim ve doğru biçimde görünümünden dönmek:

@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

değişiklik

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

Sonra

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

için yerine textboxfor arasında

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

İyi Cevap kullanın! Bu sorun kendim için textboxfor vardı. Bunu, başvuru için yararlı bulabileceğiniz dize biçimi için yararlı bir kaynak olarak buluyorum: http://www.maconstateit/tutorials/aspnet20/ASPNET02/aspnet02-07.aspx – Sparkle

+1

{0: dd.mm .yyyy} 'zamanı da içerir, {0: dd.mm.yy}' da olmaz mı? –

+0

Evet öyle olurdu. Biçim dizgisi {0: dd.MM.yyyy} veya {0: dd.MM.yy} olmalıdır. – Suncat2000