developer tip

Fluent Validation을 사용한 조건부 검증

copycodes 2020. 11. 18. 09:17
반응형

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

반응형