2013-03-19 20 views
8

w aplikacji ASP.NET MVC4 używamy FluentValidation walidacji naszych modeli. W niektórych przypadkach chcemy tylko zweryfikować właściwość, gdy inna właściwość ma wartość. Używamy słowa kluczowego When, aby to osiągnąć. Prosta klasa sprawdzania wygląda następująco:biegle walidacja ze gdy po stronie klienta

public class PersonValidator : AbstractValidator<Person> 
{ 
    public PersonValidator() 
    { 
     RuleFor(item => item.FirstName).NotEmpty(); 
     RuleFor(item => item.LastName).NotEmpty().When(item => !string.IsNullOrEmpty(item.FirstName)) 
    } 
} 

Chcielibyśmy mieć walidację po stronie klienta. Próbowałem utworzyć niestandardową właściwość FluentValidationPropertyValidator. Ale nie mogę znaleźć sposobu, aby odebrać część When reguły sprawdzania poprawności. Czy ktoś może wskazać mi właściwy kierunek?

+2

po kilka badań okazało się, że to wymaga dużo pracy, więcej info: https://fluentvalidation.codeplex.com/discussions/229346 –

Odpowiedz

0

Niektóre walidacji w FluentValidation prostu nie obsługują sprawdzanie poprawności po stronie klienta:

z dokumentacji (http://fluentvalidation.codeplex.com/wikipage?title=mvc&referringTitle=Documentation):

Zauważ, że FluentValidation będą również pracować z ASP.NET MVC za stronie klienta sprawdzanie poprawności, ale nie wszystkie reguły są obsługiwane. Na przykład, jakieś zasady określono stosując warunek (z przypadku/Chyba), niestandardowe zatwierdzające lub wzywa do Must nie będzie działał po stronie klienta. W następujące zatwierdzające są obsługiwane na kliencie:

* NotNull/NotEmpty * zestawienia (regex) * InclusiveBetween (zakres) * CreditCard * Email * EqualTo (cross-nieruchomość porównanie równość) * Długość

Powiązane problemy