用于int的asp.net mvc验证注释必须为0或大于100000

时间:2016-02-05 14:28:50

标签: asp.net asp.net-mvc data-annotations

我有一个int,我想在我的模型中使用注释进行验证。它可以是0或大于或等于100000.我该怎么做?

由于

4 个答案:

答案 0 :(得分:0)

正如其他人所说的那样,我所知道的并没有开箱即用,但是有几个人已经编写了可以使用的自定义验证属性。我过去使用的一个很好的例子来自Lessthan Greaterthan Validation

答案 1 :(得分:0)

你必须写自定义注释,但为什么要打扰:) 我强烈建议您使用Fluent Validation

然后解决问题的方法如下:

RuleFor(x => x.Property)
                .GreaterThanOrEqualTo(0)
                .LessThanOrEqualTo(100000)
                .WithMessage("must be in range of 0-100000");

答案 2 :(得分:0)

您可以实施IValidatableObject并提供自己的自定义验证:

类似的东西:

public class MyModel : IValidatableObject
{
    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        //todo implement your logic here
             yield return new ValidationResult("Must be 0 or >= 1000");
    }    
}

IValidatableObject.Validate

答案 3 :(得分:0)

我建议使用Fluent验证

using FluentValidation;
...

public class IntValidator : AbstractValidator<int>
{
    public IntValidator()
    {
        RuleFor(x => x.Property)
                        .Equal(0).GreaterThanOrEqualTo(100000)
                        .WithMessage("must be  0 or greater than 100000");
    }
}

然后

int intvariable;
IntValidator validator=new IntValidator();
ValidationResult result= validator.Validate(intvariable);