1. ホーム
  2. asp.net-mvc-3

[解決済み] asp.net mvcのMin/Max値バリデータ

2022-05-14 01:55:10

質問

asp.net mvcの属性を使用したバリデーションは本当に素晴らしいです。私はこれまで [Range(min, max)] のような値をチェックするために、これまでバリデーターを使用してきました。

[Range(1, 10)]
public int SomeNumber { get; set; }

しかし - 今私は、最小値と最大値の条件を別々にチェックする必要があります。私はこのような属性を見つけることを期待しました。

[MinValue(1, "Value must be at least 1")]
[MaxValue(10, "Value can't be more than 10")]
public int SomeNumber { get; set; }

これを書くための定義済みの属性はあるのでしょうか?また、どのようにすれば実現できるのでしょうか?

どのように解決するのですか?

MaxValue用のバリデーターを書くとしたら、次のようになります。

public class MaxValueAttribute : ValidationAttribute
    {
        private readonly int _maxValue;

        public MaxValueAttribute(int maxValue)
        {
            _maxValue = maxValue;
        }

        public override bool IsValid(object value)
        {
            return (int) value <= _maxValue;
        }
    }

MinValue 属性は、ほぼ同じであるべきです。