2016-07-12 13 views
19

W poprzednich wersjach programu ASP.NET MVC sposobem na dodanie niestandardowego sprawdzania poprawności do modelu było wdrożenie IValidatableObject i wdrożenie własnej metody Validate(). Na przykład:Jak zaimplementować niestandardową weryfikację modelu w środowisku ASP.NET Core?

public class BestModelEver : IValidatableObject { 
    public DateTime? Birthday { get; set; } 

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) { 
     if (Birthday.HasValue) { 
      yield return new ValidationResult("Error message goes here"); 
     } 
    } 
} 

Czy to nadal jest zalecany sposób dodawania niestandardowego sprawdzania poprawności do modelu w środowisku ASP.NET Core? Korzystanie z IValidatableObject przybiera zależność .

Odpowiedz

15

Istnieją dwa sposoby wykonywania niestandardowych modelu walidacji w ASP.NET Rdzeń:

  • atrybut niestandardowy podklasy z ValidationAttribute. Jest to przydatne, gdy chcesz zastosować niestandardową logikę biznesową do określonego modelu z atrybutem o wartości.
  • Implementacja IValidatableObject do sprawdzania poprawności na poziomie klasy. Użyj tego, gdy chcesz wykonać walidację w całym modelu naraz.

W przykładach znajduje się documentation. W twoim przypadku prawdopodobnie najlepszym podejściem byłaby IValidatableObject.

+3

Szukałem w ich dokumentach niestandardowej sekcji sprawdzania poprawności, ale wygląda na to, że ją przegapiłem. Dzięki! –

Powiązane problemy