The issue is that model binding supports a direct mode where parameters are taken from the value providers(lets say route data) and then directly bound to the action parameters.
This mode doesn't support validation as until now, it only works for primitive types and they don't require any validation.
By adding this custom value provider we now support model binding non-primitive types using this code path and that is why validation is not being performed.
This mode doesn't support validation as until now, it only works for primitive types and they don't require any validation.
By adding this custom value provider we now support model binding non-primitive types using this code path and that is why validation is not being performed.