web-dev-qa-db-ja.com

データ注釈を使用してDateTimeの形式を割り当てますか?

ビューモデルに次の属性があります。

[DataType(DataType.DateTime)]
public DateTime? StartDate { get; set; }

日付を表示する場合、または日付をテキストボックスに入力する場合、次のようにします。

<%: Model.StartDate %>

<%: Html.TextBoxFor(m => m.StartDate) %>

日付が表示されるたびに、次のように表示されます。1/01/2011 12:00:00 AM

しかし、私は1/01/2011のみを表示したい

データ注釈付きの表示形式を適用する方法はありますか?日付を表示するすべてのインスタンスに移動し、フォーマットするコードを追加する必要はありません。

86
Steven

タグを付けてみてください:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
135
David Fox

これを試しましたか?

[DataType(DataType.Date)]
38
rk1962

Mvc 4では、TextBoxFor。を使用して次のように簡単に実行できます。

@Html.TextBoxFor(m => m.StartDate, "{0:MM/dd/yyyy}", new { @class = "form-control default-date-picker" })

そのため、モデルでデータ注釈を使用したり、モデルクラスを表示したりする必要はありません。

22

データフィールドが既にDateTimeデータ型である場合、注釈に[DataType(DataType.Date)]を使用する必要はありません。ただ使用する:

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

jQueryでは、カレンダーにdatepickerを使用します

    $(document).ready(function () {
        $('#StartDate').datepicker();
    });

hTMLで、EditorForヘルパーを使用します。

    @Html.EditorFor(model => model.StartDate)
17
Toddt

次のようなDataAnnotationを適用します。

[DisplayFormat(DataFormatString = "{0:MMM dd, yyyy}")]
13
Chirag

これを使用しますが、完全なソリューションです。

[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
9
Renatto Machado

TextBoxForではなくEditorForを使用します

4
collusionbdbh

コメント後

          // [DataType(DataType.DateTime)] 

データ注釈属性を使用します。

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

次のリンクのSTEP-7が役立つ場合があります...

http://ilyasmamunbd.blogspot.com/2014/12/jquery-datepicker-in-aspnet-mvc-5.html

モデルの作成時に以下のコードを使用してプロパティを設定すると、問題が解決されると思います。そして、データベースに時間が表示されません。注釈を追加する必要はありません。

private DateTime? dob;
        public DateTime? DOB
        {
            get
            {
                if (dob != null)
                {
                    return dob.Value.Date;
                }
                else
                {
                    return null;
                }

            }
            set { dob = value; }
        }
0
user4719992

それは私のために働く

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