การตรวจสอบอย่างคล่องแคล่วรองรับการตรวจสอบตามเงื่อนไขเพียงใช้คำสั่ง When เพื่อตรวจสอบค่าของฟิลด์รอง:
https://fluentvalidation.net/start#conditions
การระบุเงื่อนไขด้วยเมธอดWhen / เว้นแต่สามารถใช้เมธอดเมื่อใดและเว้นเสียเพื่อระบุเงื่อนไขที่ควบคุมเมื่อกฎควรดำเนินการ ตัวอย่างเช่นกฎนี้ในคุณสมบัติ CustomerDiscount จะดำเนินการก็ต่อเมื่อ IsPreferredCustomer เป็นจริง:
RuleFor(customer => customer.CustomerDiscount)
.GreaterThan(0)
.When(customer => customer.IsPreferredCustomer);
วิธีการยกเว้นนั้นตรงกันข้ามกับเมื่อ
คุณอาจสามารถใช้การดำเนินการ. setValidator เพื่อกำหนดตัวตรวจสอบความถูกต้องแบบกำหนดเองที่ทำงานบนเงื่อนไข NotEmpty
RuleFor(customer => customer.CustomerDiscount)
.GreaterThan(0)
.SetValidator(New MyCustomerDiscountValidator);
หากคุณต้องการระบุเงื่อนไขเดียวกันสำหรับกฎหลายข้อคุณสามารถเรียกใช้เมธอด When ระดับบนสุดแทนการผูกโซ่เมื่อโทรเมื่อสิ้นสุดกฎ:
When(customer => customer.IsPreferred, () => {
RuleFor(customer => customer.CustomerDiscount).GreaterThan(0);
RuleFor(customer => customer.CreditCardNumber).NotNull();
});
คราวนี้เงื่อนไขจะถูกนำไปใช้กับกฎทั้งสอง คุณยังสามารถต่อสายเป็นมิฉะนั้นจะเรียกกฎที่ไม่ตรงกับเงื่อนไข:
When(customer => customer.IsPreferred, () => {
RuleFor(customer => customer.CustomerDiscount).GreaterThan(0);
RuleFor(customer => customer.CreditCardNumber).NotNull();
}).Otherwise(() => {
RuleFor(customer => customer.CustomerDiscount).Equal(0);
});