-
Notifications
You must be signed in to change notification settings - Fork 5.7k
Description
After upgrading from FluentValidation.AspNetCore
(v11.x) to FluentValidation
(v12.x), client-side validation stopped working.
Previously, when using
services.AddFluentValidationAutoValidation()
.AddFluentValidationClientsideAdapters();
ASP.NET Core views would generate data-val-*
attributes (e.g. data-val="true"
, data-val-required="..."
) which allowed jQuery Validate + jQuery Validate Unobtrusive to perform client-side validation.
In FluentValidation 12, the package FluentValidation.AspNetCore
was removed/marked obsolete, and the new recommended approach is to use only FluentValidation
with a global filter for server-side validation. However, there seems to be no replacement for the client-side adapters.
As a result: asp-validation-for
spans are rendered, but no data-val-*
attributes are generated for input fields, meaning jQuery Unobtrusive Validation does not work anymore.
Let's discuss what could be the solution (NuGet package or built-in adapters) to map FluentValidation rules to data-val-*
attributes so that client-side validation works the same as in FluentValidation 11.
P.S. Until a solution is found, we will use FluentValidation.AspNetCore
.
See also: Adding client-side validation to ASP.NET Core, without jQuery or unobtrusive validation