私の1つのASP.NET Coreアプリケーションでは、View
が次のViewModelを使用しています。 ViewModelの基になるモデルには、属性StartDate
があります。モデルのDataAnnotion
はStartDate
にありますが、DataAnnotation
があなたのviewmodels
に集約されると私は考えていたので、StartDate
のStartDate
に同じDataAnnotation
を使用していません。したがって、次のView
は、StartDate
を日付のみとして表示する必要があります。しかし、View
は、日付と時刻としてStartDate
を表示しています。 9/30/2015 12:00:00 AM
。一方、ViewModel
のStartDate
属性のDataAnnotation [DataType(DataType.Date)]
も使用すると、View
は、のように日付が9/30/2015
と正しく表示されます。このASP.NET Core DataAnnotationがViewModelで動作しますが、モデルだけでは動作しません
質問:Model
上DataAnnotation
がViewModel
に集約取得されていないのはなぜ?
モデル
...
[DataType(DataType.Date)]
public DateTime StartDate { get; set; }
...
のViewModel
...
public DateTime StartDate { get; set; }
...
ビュー
...
@Html.DisplayFor(t => t.StartDate)
...
ViewModelとModelは**まったく別の2つのタイプです** **魔法はありません**属性はちょうどそれに付随するメタデータの一部です他のコードがこれらの属性を読み込み、それらの値を読み込んだり、それらのメソッドを呼び出したりしない限り、属性は何もしませんこれまでに起こる – Tseng