0

次のモデルプロパティと属性があります。

  [DataType(DataType.Date)]
    public Nullable<DateTime> DateOfBirth { get; set; }

私のEditScreen.cshtmlには、生年月日を表示するための次の部分があります。

 <div class="editor-label">
            Date of Birth
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.DateOfBirth)
            @Html.ValidationMessageFor(model => model.DateOfBirth)
        </div>

ただし、DataType.Date属性にもかかわらず、完全な日付と時刻がページに表示されます(例:06/04/1971 00:00:00)。

日付の時間部分がまだ表示されているのはなぜですか?見逃した「落とし穴」はありますか?

Nullableを日時に変更しようとしましたが、違いはありません。日付のフォーマットを妨げる根本的な何かがあるに違いありませんが、それが何であるか、そしてどのように見つけるかがわかりません。

4

3 に答える 3

1

おそらく、EditorFor の日付形式を変更するには、Editor Template を作成する必要があるだけです。

これを行うには、Views\Shared の下に新しいフォルダー (まだ存在しない場合) を作成し、「EditorTemplates」という名前を付けます。そのフォルダー内に新しい部分ビューを追加し、「DateTime.cshtml」という名前を付けます。

新しい "DateTime.cshtml" ファイル内に、次のコードを追加します。

@model System.DateTime ?
@Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty))
于 2012-11-28T16:21:48.537 に答える
0
[DataType(DataType.Date)]
(DataFormatString = "{0:MMMMMMMMMM dd,yyyy}")]
public Nullable<DateTime> DateOfBirth { get; set; }

これを試して。

于 2012-11-30T12:24:57.060 に答える
0

追加してみることができます

   [DataType(DataType.Date)]
   [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
于 2012-11-28T15:27:10.943 に答える