- Replace server interactivity with vanilla JS (forms.js) for Popover, Calendar, TimePicker, NumberInput, and Counter components
- Rewrite all Razor components to static SSR using data-* attributes for JS hooks
- Simplify InputBase.cs (remove EventCallback, EditContext, SetValueAsync)
- Remove AddInteractiveServerComponents/AddInteractiveServerRenderMode from Program.cs
- Update demo pages: remove @rendermode, replace EditForm with native form
- Add InteractivityGapTests.cs with 30 scoped E2E tests
- Update FormsTests.cs selectors for new static SSR structure
- Fix year picker navigation bug and date format mismatch in forms.js
- All 126 tests passing
[Required(ErrorMessage = "Password is required.")]
[StringLength(64, MinimumLength = 8, ErrorMessage = "Password must be 8–64 characters.")]
public string? Password { get; set; }
[Required(ErrorMessage = "Age is required.")]
[Range(1, 150, ErrorMessage = "Age must be between 1 and 150.")]
public double? Age { get; set; }
[Required(ErrorMessage = "Birth date is required.")]
public DateOnly? BirthDate { get; set; }
[Required(ErrorMessage = "Preferred time is required.")]
public TimeOnly? PreferredTime { get; set; }
[Required(ErrorMessage = "Appointment is required.")]
public DateTime? Appointment { get; set; }
}
}
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.