モデルでアノテーション(Required)を指定しているプロパティが4つあります。
[Required] public string A { get; set; } [Required] public string B { get; set; } [Required] public string C { get; set; } [Required] public string D { get; set; }
条件によってこのアノテーションを無効にしたり有効にしたりする方法はありますでしょうか?(Dだけは必ず有効)
FLGというプロパティがあるとして、その値が1の時はRequiredを有効0の時は無効みたいな事が出来ればいいと思っています。
カスタムバリデーションなどで下記のようなことも考えましたが、「m.A」の所をABCすべてに対応させる方法がわかりませんでした。
public static ValidationResult CheckRequired(Test m) { if (m.FLG=="1" && m.A == null) { return new ValidationResult("エラー"); } return ValidationResult.Success; }
ASP.NET MVC の話ですよね? であれば、ASP.NET とか ASP.NET MVC Framework というタグがありますのでそちらを使っていただければと思います。
「条件によって」とは具体的にどういうことでしょう? また、できれば全体的なやりたいことのシナリオ・ストーリーも書いていただけませんか。局所的な部分を切り出して質問すると、真にやりたいことの解決にはなかなかつながりにくいケースが多いので。また、こうした方が良いという代案が出てくるかもしれませんし。
タグの編集しました。A,B,C,D4つのテキストボックスとFLGというチェックボックスがあるときに、FLGのチェックボックスがONのときのみテキストボックスA、B、Cの必須チェックを行いたいと思っています。(チェックボックスがOFFの時はABCは非活性でDだけは常に入力チェックを行う)
クライアント側での検証は行わず、サーバー側だけで検証するなら比較的簡単にできそうな気がしますが(未検証なので今のところ気がするだけです)、それで OK ですか?
まだ回答がついていません
会員登録して回答してみよう