Ich habe eine Frage bezüglich der Property-Validierung, jedoch konnte ich noch keine passende Antwort finden.Validierungseigenschaft, basierend auf einer anderen Modelleigenschaft
Ich habe die folgenden Klassen
public class IndexViewModel
{
public Film Film { get; set; }
public ReviewModel Review { get; set; }
}
public class ReviewModel
{
[RequiredIf // only fire if 'Genre' is equal to Genre.Horror]
public string Text { get; set; }
}
public class Film
{
public string Title { get; set; }
public Director Director { get; set; }
public Genre Genre { get; set; }
}
public class Director
{
public string Name { get; set; }
}
public enum Genre
{
Horror,
Thriller,
SciFi,
Drama
}
Ist es möglich, ein [RequiredIf]
Attribut auf der Text
Eigenschaft in ReviewModel
die Validierung basierend auf dem Wert von Genre
im Film
Modell feuert hinzuzufügen. Jede Hilfe würde sehr geschätzt werden.
Überprüfen Sie die Foolproof-Validierung: https://foolproof.codeplex.com/ und FluentValidation: https://github.com/JeremySkinner/FluentValidation – solidau
Nein, es ist nicht möglich, Validierungsattribute zu verwenden, da der Validierungskontext für das 'ReviewModel 'gilt 'nur. Aber Ihr 'IndexViewModel' ist nicht die korrekte Verwendung eines Ansichtsmodells. Es sollte die Eigenschaften enthalten, die Sie als flache Struktur bearbeiten müssen, und sollte keine Eigenschaften enthalten, die Datenmodelle sind. –