我已經習慣於用數據註解屬性來裝飾數據模型類,但是我的純粹主義者在包含純粹的表示屬性(例如顯示格式)時稍微有些茫然。然而,我很高興在這裏保持以驗證爲中心的屬性。我必須繼續在數據模型中保留所有註釋等的一個很好的理由是我的視圖模型聚集了數據模型類,例如,視圖模型中的我的ViewModelBase.DetailItem<TEntity>
屬性僅僅是對我的數據模型中的實體類的引用。如果我想將視覺模型的表示註釋移動到視圖模型中,我必須從根本上將我的設計修改爲在我的視圖模型中複製數據模型屬性的設計,並使用對象映射工具基於數據模型對象填充視圖模型對象。數據註釋應該放在模型還是視圖模型上?
我應該在哪裏做我的數據註釋?
只是順便說一句,這是我的草稿ViewModelBase
樣子:
public class ViewModelBase<T>
{
public virtual string PageTitle { get; set; }
public virtual string ViewHeading { get; set; }
public virtual ViewMode ViewMode { get; set; }
public virtual IEnumerable<T> ItemList { get; set; }
public virtual T DetailItem { get; set; }
}
此外,請查看:http://stackoverflow.com/questions/3338919/mvc-validation-using-data-annotations-model-classes-or-view-model-classes – DarrellNorton 2010-12-15 18:45:59