Ich bin es gewöhnt, Datenmodellklassen mit Datenanmerkungsattributen zu dekorieren, aber der Purist in mir buckelt leicht bei rein darstellenden Attributen wie dem Darstellungsformat hier. Ich bin jedoch sehr glücklich, hier validierungszentrische Attribute zu behalten. Ein guter Grund, warum ich alle Anmerkungen usw. im Datenmodell beibehalten muss, ist, dass mein Ansichtsmodell Datenmodellklassen aggregiert, z. Meine ViewModelBase.DetailItem<TEntity>
-Eigenschaft im Ansichtsmodell ist nur eine Referenz auf eine Entitätsklasse in meinem Datenmodell. Wenn ich Präsentationsanmerkungen in das Ansichtsmodell verschieben möchte, müsste ich mein Design radikal dahingehend überarbeiten, dass ich Datenmodelleigenschaften in meinem Ansichtsmodell dupliziere und ein Objektzuordnungswerkzeug zum Auffüllen von Ansichtsmodellobjekten basierend auf Datenmodellobjekten verwendet.Sollten Datenanmerkungen auf dem Modell oder dem Ansichtsmodell sein?
Wo sollte ich meine Datenanmerkungen machen?
Gerade BTW, ist das, was mein Rohentwurf ViewModelBase
wie folgt aussieht:
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; }
}
Überprüfen Sie auch: http://StackOverflow.com/Questions/3338919/MVC-validation-using-Data-Annotations-Model-Classes-Or-VIEW-Model-Classes – DarrellNorton