Fluent Validation을 사용한 조건부 검증
내가 필요한 것은 다른 필드가 채워져 있는지 여부에 따라 필드를 조건부로 검증하는 방법입니다.
전의. 관련된 드롭 다운 및 날짜 필드가 있습니다. 필드가 설정되지 않은 경우 양식은 유효성 검사를 통과해야합니다. 그러나 두 필드 중 하나가 설정되었지만 다른 필드가 설정되지 않은 경우 유효성 검사가 실행되어 다른 필드를 설정해야합니다.
사용자 지정 유효성 검사 클래스를 작성했지만 단일 필드에서 유효성을 검사하는 것 같습니다. 내장 된 유효성 검사기를 사용하여 필요한 유효성 검사를 설정하는 방법이 있습니까? 그렇지 않은 경우 사용자 정의 유효성 검사기를 사용하여 두 필드를 연결하는 좋은 방법이 있습니까?
Fluent 유효성 검사는 조건부 유효성 검사를 지원합니다. When 절을 사용하여 보조 필드의 값을 확인하면됩니다.
https://fluentvalidation.net/start#conditions
When / Unless를 사용하여 조건 지정 When 및 Unless 메서드를 사용하여 규칙 실행시기를 제어하는 조건을 지정할 수 있습니다. 예를 들어 CustomerDiscount 속성에 대한이 규칙은 IsPreferredCustomer가 true 인 경우에만 실행됩니다.
RuleFor (customer => customer.CustomerDiscount) .GreaterThan (0) .When (customer => customer.IsPreferredCustomer);`
Unless 방법은 단순히 When의 반대입니다.
.SetValidator 작업을 사용하여 NotEmpty 조건에서 작동하는 사용자 지정 유효성 검사기를 정의 할 수도 있습니다.
RuleFor (customer => customer.CustomerDiscount) .GreaterThan (0) .SetValidator (New MyCustomerDiscountValidator)
참고 URL : https://stackoverflow.com/questions/8084374/conditional-validation-using-fluent-validation
'developer tip' 카테고리의 다른 글
matplotlib / Python에서 백엔드를 전환하는 방법 (0) | 2020.11.18 |
---|---|
JAX-RS 서비스에 JSON 오브젝트를 POST하는 방법 (0) | 2020.11.18 |
Ant에서 파일이 아닌 디렉토리의 존재를 확인할 수있는 방법이 있습니까? (0) | 2020.11.17 |
XML을 java.util.Map으로 또는 그 반대로 변환하는 방법 (0) | 2020.11.17 |
".equals"와 "=="의 차이점은 무엇입니까? (0) | 2020.11.17 |