サーチ…


検証アトリビュートを使用したモデル検証

検証属性を使用して、モデル検証を簡単に構成することができます。

public class MyModel
{
    public int id { get; set; }

    //sets the FirstName to be required, and no longer than 100 characters
    [Required]
    [StringLength(100)]
    public string FirstName { get; set; }
}

組み込みの属性は次のとおりです。

  • [CreditCard] :プロパティがクレジットカード形式であることを検証します。
  • [Compare] :モデルマッチの2つのプロパティを検証します。
  • [EmailAddress] :電子メール形式のプロパティを検証します。
  • [Phone] :プロパティが電話形式であることを検証します。
  • [Range] :プロパティ値が指定された範囲内にあることを検証します。
  • [RegularExpression] :データが指定された正規表現と一致することを検証します。
  • [Required] :プロパティを必要とします。
  • [StringLength] :文字列プロパティが最大長以下であることを検証します。
  • [Url] :プロパティがURL形式であることを検証します。

カスタム属性を使用したモデルの検証

組み込みの属性でモデルデータを検証するのに十分でない場合は、ValidationAttributeから派生したクラスに検証ロジックを配置できます。この例では、奇数のみがモデルメンバーの有効な値です。

カスタム検証属性

public class OddNumberAttribute : ValidationAttribute
{
    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        try
        {
            var number = (int) value;
            if (number % 2 == 1)
                return ValidationResult.Success;
            else
                return new ValidationResult("Only odd numbers are valid.");
        }
        catch (Exception)
        {
            return new ValidationResult("Not a number.");
        }            
    }
}

モデルクラス

public class MyModel
{
    [OddNumber]
    public int Number { get; set; }
}


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow