Skip to content

API review changes for Blazor SSR client-side validation - #67855

Merged
oroztocil merged 1 commit into
mainfrom
oroztocil/validation-client-side-api-feedback
Jul 16, 2026
Merged

API review changes for Blazor SSR client-side validation#67855
oroztocil merged 1 commit into
mainfrom
oroztocil/validation-client-side-api-feedback

Conversation

@oroztocil

@oroztocil oroztocil commented Jul 16, 2026

Copy link
Copy Markdown
Member

Fixes #67800

Applies the changes requested during API review of the Blazor SSR client-side validation proposal.

  • Renamed DataAnnotationsValidator.EnableClientValidation to DisableClientValidation (polarity flipped, default false)
  • Added a global RazorComponentsServiceOptions.DisableClientValidation opt-out that is read by the ClientValidationProvider and suppresses rule emission for all forms
  • Renamed IClientValidationAdapter to IClientValidationRuleProvider
  • Made ClientValidationRule.Parameters non-nullable (empty dictionary when unset)
  • Moved types from Microsoft.AspNetCore.Components.Forms.ClientValidation into the Microsoft.AspNetCore.Components.Forms namespace
  • Updated doc comment references, and removed a stale trimmer warning suppression

@oroztocil
oroztocil requested a review from a team as a code owner July 16, 2026 19:34
Copilot AI review requested due to automatic review settings July 16, 2026 19:34

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Applies API review feedback for Blazor SSR client-side validation by renaming/relocating the new APIs, flipping the DataAnnotationsValidator opt-out polarity, and adding a global opt-out via RazorComponentsServiceOptions.

Changes:

  • Renames EnableClientValidation to DisableClientValidation on DataAnnotationsValidator (polarity flip; default remains “enabled” because the default is false).
  • Introduces global opt-out RazorComponentsServiceOptions.DisableClientValidation, wired into the SSR DataAnnotationsClientValidationProvider.
  • Renames IClientValidationAdapter to IClientValidationRuleProvider, moves client-validation types into Microsoft.AspNetCore.Components.Forms, and makes ClientValidationRule.Parameters non-nullable.

Reviewed changes

Copilot reviewed 20 out of 20 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/Components/Web/src/PublicAPI.Unshipped.txt Updates unshipped API surface for ClientValidationProvider namespace move.
src/Components/Web/src/Forms/InputBase.cs Removes old client-validation namespace import after type moves.
src/Components/Web/src/Forms/EditForm.cs Removes old client-validation namespace import after type moves.
src/Components/Web/src/Forms/ClientValidation/RenderedFieldRegistry.cs Moves namespace to Microsoft.AspNetCore.Components.Forms.
src/Components/Web/src/Forms/ClientValidation/ClientValidationProvider.cs Moves namespace to Microsoft.AspNetCore.Components.Forms.
src/Components/Web/src/Forms/ClientValidation/ClientValidationData.cs Moves namespace to Microsoft.AspNetCore.Components.Forms.
src/Components/test/testassets/Components.TestServer/RazorComponents/Pages/Forms/DefaultFormBoundParameterAnnotations.razor Updates validator parameter name/polarity in test asset.
src/Components/test/testassets/Components.TestServer/RazorComponents/Pages/Forms/ClientValidation/CustomValidator.razor Updates adapter interface name in sample code/comments.
src/Components/test/testassets/Components.TestServer/RazorComponents/Pages/Forms/ClientValidation/BasicValidation.razor Updates validator parameter name/polarity and query binding usage.
src/Components/test/E2ETest/ServerRenderingTests/ClientValidation/ClientValidationTest.cs Renames test to match new parameter/polarity and updates navigation query.
src/Components/Forms/src/PublicAPI.Unshipped.txt Updates unshipped API entries for DisableClientValidation.
src/Components/Forms/src/Microsoft.AspNetCore.Components.Forms.WarningSuppressions.xml Removes stale trimmer warning suppression.
src/Components/Forms/src/DataAnnotationsValidator.cs Flips opt-out polarity and updates docs for client-validation emission.
src/Components/Endpoints/test/FormValidation/ClientValidationProviderTests.cs Renames custom adapter test/model and adds coverage for global opt-out.
src/Components/Endpoints/src/PublicAPI.Unshipped.txt Reflects interface rename and Parameters nullability change; adds new options property.
src/Components/Endpoints/src/Forms/IClientValidationRuleProvider.cs Renames interface for custom rule contribution.
src/Components/Endpoints/src/Forms/DataAnnotationsClientValidationProvider.cs Wires global opt-out and updates interface usage.
src/Components/Endpoints/src/Forms/ClientValidationRule.cs Makes Parameters non-nullable (empty dictionary when unset).
src/Components/Endpoints/src/DependencyInjection/RazorComponentsServiceOptions.cs Adds DisableClientValidation global opt-out option.
src/Components/Endpoints/src/DependencyInjection/RazorComponentsServiceCollectionExtensions.cs Keeps DI wiring correct after namespace/type moves (including provider registration).

Comment thread src/Components/Forms/src/DataAnnotationsValidator.cs
@oroztocil
oroztocil enabled auto-merge (squash) July 16, 2026 19:48
@oroztocil oroztocil added this to the 11.0-preview7 milestone Jul 16, 2026
@oroztocil
oroztocil merged commit 081aac6 into main Jul 16, 2026
29 checks passed
@oroztocil
oroztocil deleted the oroztocil/validation-client-side-api-feedback branch July 16, 2026 21:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[API Proposal] Client-side validation for Blazor static SSR forms

3 participants