2016-07-24 5 views
0

In meinem Web-api Projekt IBereich Datenaufbelichtung arbeiten nicht

[HttpPost] 
    public void Post([FromBody]AccountDTO accountDto) 

AccountDto sind einige Eigenschaften, zum Beispiel haben:

public int AccountId { get; protected set; } 
    [Range(0,100)] 
    public int AccountBalance { get; protected set; } 
    [RegularExpression(COMMA_SEPARATED_EMAILS_REGEX)] 
    public string Emails { get; set; } 

I-Filter auch hinzugefügt Modellfehler zu fangen:

public void OnActionExecuting(ActionExecutingContext context) 
    { 
     if (!context.ModelState.IsValid) 
     { 
      throw new InvalidDataException(string.Join(" ", context.ModelState.Keys.SelectMany(key => context.ModelState[key].Errors.Select(x => key + ": " + x.ErrorMessage)))); 
     } 
    } 

Nun, wenn die E-Mail-Zeichenfolge nicht gültig ist - es wirft den erwarteten Fehler, auch ich habe versucht [EmailAddress], [Phone], [Required], [StringLength(3)], und alles funktioniert OK. nur [Range (0.100)] nicht funktioniert ...

ich mit accountBallance Post AccountDTO versucht = 50033333 und kein Fehler geworfen, auch versucht, -5 und ich bekam Status 200.

wo soll ich für die aussehen ? Fehler ... dank

Antwort

0

Genau dies versuchen es vielleicht helfen:

[Required(ErrorMessage = "AccountBalance is required")] 
[Range(1.00, 100.00, ErrorMessage = "AccountBalance must be between 1 and 100")] 
public Double AccountBalance { get; protected set; } 

und stellen Sie sicher, dass Sie System.ComponentModel.DataAnnotations verwenden.

0

Sobald ich die protected die Validierung entfernt.