ビューモデルに次の属性があります。
[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のみを表示したい
データ注釈付きの表示形式を適用する方法はありますか?日付を表示するすべてのインスタンスに移動し、フォーマットするコードを追加する必要はありません。
タグを付けてみてください:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
これを試しましたか?
[DataType(DataType.Date)]
Mvc 4では、TextBoxFor
。を使用して次のように簡単に実行できます。
@Html.TextBoxFor(m => m.StartDate, "{0:MM/dd/yyyy}", new { @class = "form-control default-date-picker" })
そのため、モデルでデータ注釈を使用したり、モデルクラスを表示したりする必要はありません。
データフィールドが既に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)
次のようなDataAnnotationを適用します。
[DisplayFormat(DataFormatString = "{0:MMM dd, yyyy}")]
これを使用しますが、完全なソリューションです。
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
TextBoxForではなくEditorForを使用します
コメント後
// [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; }
}
それは私のために働く
[DataType(DataType.DateTime)]
[DisplayFormat(DataFormatString = "{0:dd-mm-yyyy}", ApplyFormatInEditMode = true)]