He estado acostumbrado a decorar clases de modelos de datos con atributos de anotación de datos, pero el purista en mí se empeña en incluir atributos puramente de presentación como el formato de visualización aquí. Sin embargo, me complace mantener aquí los atributos centrados en la validación. Una buena razón por la que tengo que seguir guardando todas las anotaciones, etc. en el modelo de datos es que mi modelo de vista agrega clases de modelo de datos, p. Mi propiedad ViewModelBase.DetailItem<TEntity>
en el modelo de vista es solo una referencia a una clase de entidad en mi modelo de datos. Si quisiera mover las anotaciones de presentación al modelo de vista, tendría que revisar radicalmente mi diseño a uno donde duplique las propiedades del modelo de datos en mi modelo de vista y use una herramienta de mapeo de objetos para poblar objetos del modelo de visualización basados en objetos del modelo de datos.¿Las anotaciones de datos deben estar en el modelo o en el modelo de vista?
¿Dónde debería estar haciendo mis anotaciones de datos?
Sólo Por cierto, esto es lo que mi borrador ViewModelBase
siguiente aspecto:
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; }
}
También visita: http://stackoverflow.com/questions/3338919/mvc-validation-using-data-annotations-model-classes-or-view-model-classes – DarrellNorton