2016-02-05 32 views
0

我有一個int,我想驗證與我的模型中的註釋。它可以是0或大於或等於100000.我該怎麼做?asp.net mvc驗證註釋爲int或者必須是0或大於100000

感謝

+0

分享任何代碼,你可以有這麼遠,我們可以幫助的代碼接通到你的項目是什麼在起作用。 – Chad

+0

沒有內置註釋來執行此操作。不過應該很容易寫出一個自定義的問題 – Andrei

+1

好問題。謙虛的建議:[「零不是空」](http://programmers.stackexchange.com/questions/134861/how-can-i-explain-the-difference-between-null-and-zero)不要存儲當你什麼都沒有意思時,它就是零 –

回答

0

正如其他人指出,沒有一個出來做這個,我知道的方塊,但也有自己編寫自定義驗證屬性,你可以使用幾個人。我過去使用的一個很好的例子是從Lessthan Greaterthan Validation

0

你必須編寫自定義的註解,但是爲什麼要費心:) 我強烈建議使用Fluent Validation

然後爲您解決問題應該是這樣的:

RuleFor(x => x.Property) 
       .GreaterThanOrEqualTo(0) 
       .LessThanOrEqualTo(100000) 
       .WithMessage("must be in range of 0-100000"); 
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

0

我會建議使用流利的驗證

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); 
相關問題