2017-09-14 14 views
0

いくつかの検証ルールを適用するクラスのプロパティがあります。数および/またはアドレスが 存在するかどうかをチェックし参照するには - - はと存在しないどちらもあれば、その後複数のプロパティにまたがるクラスレベルの検証ルール

現在、私「これが必要です」というメッセージを返します。

は、私は、カスタムバリデータを作成したいですhave:

[CustomValidation(typeof(Course), "NumberOrAddressValidator")] 
public class Information { 
    public string Number { get; set; } 
    public string Address { get; set; } 
} 
public static ValidationResult PhoneOrWebAddressRequiredValidator(string name, ValidationContext context) 
     { 
      if (Course.WebAddress == null) 
      { 
       return "Phone or web address is required"; 
      } 
      else if(Course.PhoneNumber == null) 
      { 
       return "Phone or web address is required"; 
      } 
      else 
      { 
       return ValidationResult.Success; 
      } 

     } 

私はこれについて正しく考えていますか?私はちょっと "return ValidationResult.Success"が正確に何を理解しているかに固執しています。そして現在、文字列を返すときにエラーを投げています(返すメッセージ)。

ご意見やご協力をいただければ幸いです。

答えて

0

私が理解しているように、カスタム検証の代わりに表現アノテーションを行うべきです。 PMCに次のようになります

PM>インストール・パッケージExpressiveAnnotations -Version 2.9.5

あなたのコードを実行することにより、NuGetパッケージをインストールします。

public class Information 
{ 
    [RequiredIf("Address==null", ErrorMessage = "Number or Address is Required")] 
    public string Number { get; set; } 
    [RequiredIf("Number==null", ErrorMessage = "Number or Address is Required")] 
    public string Address { get; set; } 
} 
+0

ありがとう@shahidしかし、この例では、カスタムバリデーターを使用したいと思います。 – William

関連する問題