2011-06-26 10 views
0

私のプロジェクトで.NET 4 MVC 2を使用しています。私は基本的に2つのクラスを持っています。クラスAは私の(主な)モデルであり、クラスBはクラスAが持つ複合的な属性です。コードは次のようになります。.net mvc 2 validation:いくつかの属性の値の合計

クラスAに基づいたすべての検証は非常にうまくいっています。しかし今、私は以下のような複合属性Bを検証したいと思います。

 
[Bind(Exclude = "B_ID")] 
    public class B_Validation 
    { 
     [Required(ErrorMessage = "missing")] 
     [Range(1, 210, ErrorMessage = "range between 1 and 210")] 
     public int first { get; set; } 

     [Required(ErrorMessage = "missing")] 
     [Range(1, 210, ErrorMessage = "range between 1 and 210")] 
     public int second { get; set; } 

     [Required(ErrorMessage = "missing")] 
     [Range(1, 210, ErrorMessage = "range between 1 and 210")] 
     public int third { get; set; } 
    } 

は私が、最初のBの3つの属性の範囲を確認することができています。 私が追加したいのは、すべての3つの属性最初第三合計がある閾値以下であるかどうかを確認することです。

どのような進め方がありますか?

ViewModelsが役立つかもしれないと思っていますが、私はそれらを使った経験がありません。この属性でBプロパティを飾る、その後

public class SumBelowAttribute : ValidationAttribute 
{ 
    private readonly int _max; 
    public SumBelowAttribute(int max) 
    { 
     _max = max; 
    } 

    public override bool IsValid(object value) 
    { 
     var b = value as B_Validation; 
     if (b != null) 
     { 
      return b.first + b.second + b.third < _max; 
     } 
     return base.IsValid(value); 
    } 
} 

と::

答えて

関連する問題