2011-09-26 4 views
10

MVC3を使用して、正しく表示する際に問題が発生します。DateTimeオブジェクトです。MVC3 DateTimeのDataFormatStringを設定します。

コントローラーでは、Date = DateTime.Nowと設定しました。 ViewModelには

:ビューで

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

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

しかし、私は値が26.09.11になりたいです。

なぜ機能しないのですか?

答えて

3

あなたのViewModelに正しい(唯一のことは、あなたがC#で短い年を表示したい場合は、「YY」を使用する必要がある)が、私はあなたがこのコード

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

私をどうか理解していませんdateを示し、この例では、私はdatepickerを追加する方法をお見せし、正しい形式のビューから戻る:

@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

変更

012その後

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

から

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

、代わりに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

関連する問題