2010-11-24 2 views
4

Wir haben unsere POCO-Klassen mit Datenanmerkungen eingerichtet.Validieren von TEIL des Modells mit ASP.NET MVC und Datenanmerkungen

Für eine dieser Klassen rufen wir mehr als eine Ansicht auf, damit der Benutzer alle Daten auffüllen kann. Zum Beispiel, wenn es eine Klasse mit Benutzernamen und Passwort als Eigenschaften wäre, würden wir auf der ersten Seite den Benutzer dazu bringen, seinen Benutzernamen anzugeben und auf der zweiten Seite sein Passwort angeben.

Jetzt, wenn ich die volle POCO-Klasse (die beide Benutzernamen & Passwort benötigt) verwenden, wenn wir ModelState.IsValid fragen wurden falsch erhalten, da das Passwort noch nicht geliefert wurde, aber wir wissen, dass das Passwort wird auf der nächsten Seite geliefert!

Gibt es eine allgemeine Möglichkeit, diejenigen Elemente des Modells zu validieren, für die Werte bereitgestellt werden sollten, anstatt das gesamte Modell? Ich weiß, dass ich die Fehler für einzelne Artikel aus dem ModelState entfernen kann.

Ich weiß, dass wir die Modellelemente trennen könnten, um separate Modelle für jeden Seitenteil des Eintrags zu haben, der ausgeführt wird, aber das fühlt sich so an, als ob wir die zugrundeliegende Klasse so verändern, dass sie mehr zu der Ansicht passt.

Grüße

Jamie

Antwort

0

Versuchen Sie, die Validierung auf den Klassen Ansichtsmodell setzen. Jede Ansicht hat ihre eigene ViewModel-Klasse. Eines mit dem Benutzernamen, das andere mit dem Passwort. Verwenden Sie das Modell erst, wenn Sie alle benötigten Daten erfasst haben.

+0

Aber da liegt das Problem für mich. Wir haben bereits die für die POCO-Klasse erforderliche Validierung angegeben, und kopieren wir diese Aktivität nicht, indem wir sie anderen Klassen zuordnen? Ich schätze, dass wir im Endeffekt Dinge aufteilen können, aber das Modell spezifiziert durch die Anmerkungen, was benötigt wird und was nicht. – jamie

+0

Ich stimme zu, dass Sie die Validierungsregeln nicht duplizieren möchten. Ich denke, der Link Jamie liefert die Antwort, die Sie suchen. – Steven