在我的一個ASP.NET Core應用程序中,View
正在使用以下ViewModel。 ViewModel的基礎模型有一個屬性StartDate
。該型號有DataAnnotion
StartDate
,但我在ViewModel
的StartDate
上沒有使用相同的DataAnnotation
,因爲我認爲如果DataAnnotation
在您的型號中,那麼它會聚合到您的viewmodels
。因此,以下View
應僅顯示StartDate
作爲日期。但是View
顯示爲StartDate
作爲日期和時間,例如, 9/30/2015 12:00:00 AM
。另一方面,如果我同時使用ViewModel
中的StartDate
屬性上的DataAnnotation [DataType(DataType.Date)]
屬性,則View
正確顯示StartDate
僅作爲日期,例如9/30/2015
。爲什麼這個ASP.NET Core Data Annotation在ViewModel中工作,但不在Model中工作
問題:爲什麼在Model
DataAnnotation
不獲取聚集ViewModel
?
型號
...
[DataType(DataType.Date)]
public DateTime StartDate { get; set; }
...
視圖模型
...
public DateTime StartDate { get; set; }
...
查看
...
@Html.DisplayFor(t => t.StartDate)
...
你覺得這樣會怎麼樣?ViewModel和Model是兩種完全不同的類型**。沒有涉及到的魔術屬性就是這樣一個元數據附加到一個程序集,類型,字段,屬性或方法,沒有**任何功能**,除非其他代碼片段讀取這些屬性並讀取它們的值或調用它們的方法,否則這些屬性什麼也不做,什麼都不做將會發生 – Tseng