我有一个int,我想在我的模型中使用注释进行验证。它可以是0或大于或等于100000.我该怎么做?
由于
答案 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");
}
}
答案 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);