What problem does it solve? Blazor developers must handle forms differently depending on the app's interactivity mode, and using the wrong pattern causes silent failures like ignored validation attributes, null models on GET requests, or broken submissions in Static SSR. ## Core Features & Use Cases - EditForm Patterns: Set up Model-based or EditContext-based forms that work in both Static SSR and interactive Server/WebAssembly modes, with correct use of FormName and SupplyParameterFromForm. - Validation: Apply DataAnnotationsValidator, per-field ValidationMessage components, and custom validator components for server-side business rules like uniqueness checks. - Input Handling & File Upload: Use built-in input components, @bind:after reactions, real-time @oninput filtering, and InputFile uploads with stream size limits. - Use Case: You are adding a registration form to a Blazor app with per-page interactivity. This Skill guides you to use FormName plus SupplyParameterFromForm for the static pages and @bind-Value with DataAnnotationsValidator for interactive pages, avoiding double-submission and antiforgery pitfalls. ## Quick Start Ask the agent to add a validated contact form with name, email, and message fields to your Blazor page, respecting the interactivity mode defined in your project's AGENTS.md.