Skip to content

Property cascade mode

Vsevolod Pilipenko edited this page Jul 19, 2022 · 1 revision

About

You can set for your properties two behaviors of failures:

  1. CascadeMode.Continue - all validation rules will be checked and show all messages of it.
  2. CascadeMode.Stop - if validation rule has messages, all following are ignored.

Default behavior is CascadeMode.Continue.

How to setup CascadeMode

There are three way to specify property cascade mode. They are ordered by priority.

Setup if for property when you create rules

builder.RuleFor(vm => vm.Email)
    .WithPropertyCascadeMode(CascadeMode.Stop)
    .NotEmpty().When(vm => vm.PhoneNumber, phoneNumber => string.IsNullOrEmpty(phoneNumber))
    .Must(IsValidEmail);

Setup it for validation builder

builder.PropertyCascadeMode = CascadeMode.Stop;

or just like this if your use separate class for rules:

PropertyCascadeMode = CascadeMode.Stop;

Setup default behavior for all application

ValidationOptions
    .Setup()
    .UsePropertyCascadeMode(CascadeMode.Stop);