Min/Max-value validators in asp.net mvc

110

Validation using attributes in asp.net mvc is really nice. I have been using the [Range(min, max)] validator this far for checking values, like e.g.:

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

However - now I need to check the min and max condition separately. I expected to find attributes like these:

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

Are there any predefined attributes for writing this? Or how do I achieve this?

This question is tagged with asp.net-mvc-3 validation

~ Asked on 2011-08-31 12:12:13

The Best Answer is


52

Here is how I would write a validator for 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;
        }
    }

The MinValue Attribute should be fairly the same

~ Answered on 2011-08-31 12:22:52


201

I don't think min/max validations attribute exist. I would use something like

[Range(1, Int32.MaxValue)]

for minimum value 1 and

[Range(Int32.MinValue, 10)]

for maximum value 10

~ Answered on 2011-08-31 12:26:28


Most Viewed Questions: