プロパティの検証に関する質問がありますが、まだ適切な回答を見つけることができませんでした。他のモデルプロパティに基づいてプロパティ値を検証する
私は、次のクラス
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
}
を持っているがFilm
モデルでGenre
の値に基づいて検証を発射ReviewModel
でText
性質上[RequiredIf]
属性を追加することが可能です。どんな助けでも大歓迎です。
Foolproof Validation:https://foolproof.codeplex.com/とFluentValidation:https://github.com/JeremySkinner/FluentValidation – solidau
検証コンテキストは「ReviewModel」用であるため、検証属性を使用することはできません'のみです。しかし、あなたの 'IndexViewModel'はビューモデルの正しい使い方ではありません。これには、フラットな構造として編集する必要のあるプロパティが含まれている必要があります。また、データモデルであるプロパティを含むべきではありません。 –