0

MVC4 DateTimeオブジェクトを使用して、日付を正しく表示することに問題があります。

コントローラーで、データベースの正しい値から日付を設定しました:Birthdate = person.Birthdate

ViewModelの場合:

[DisplayFormat(DataFormatString = "DD/mm/YY", ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true)]
public DateTime? Birthdate { get; set; }

ビューで:

@using (Html.BeginHorizontalControlFor(m => m.Birthdate))
{
    @Html.EditorFor(model => model.Birthdate)
    @Html.ValidationMessageFor(model => model.Birthdate)
}

出力:

<input class="text-box single-line input-validation-error" data-val="true" data-val-date="The field Birthdate must be a date." id="Birthdate" name="Birthdate" type="datetime" value="DD/mm/YY">

私の日付の値はどこにありますか?なぜそれが機能しないのですか?

4

2 に答える 2

3

DD/mm/YYは間違った形式です-すべてのコンポーネントの大文字と小文字が間違っています。を使用する必要がありますdd/MM/yy(または同様のもの。個人的には、yyyyの代わりに使用することをお勧めしますyy)。詳細については、カスタムの日付/時刻形式についてMSDNのドキュメントを参照してください。

また、これは非常に文化に固有であることに注意してください。これは、対象とするすべての文化に適した形式であると確信していますか?(ある種のカレンダーコントロールを使用する方が、使いやすさの観点からは優れていると思います。)

于 2012-12-13T09:53:10.413 に答える
0

その属性を機能させるには、その属性の DataFormatString ビットの構文を変更する必要がありました。試す:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM-dd-yyyy}")]
于 2012-12-13T17:29:46.617 に答える