I'm working with ServiceStack Blazor and using a standard modal provided by the framework to handle CRUD operations in a Blazor web application. The modal opens as expected when creating new records but does not open for editing existing records.
Here’s the issue:
When I double-click on a player record in the grid to edit it, the URL updates correctly to include ?edit=6 (or another player ID), but the modal does not appear. However, for creating a new player, everything works as expected.
Here is my Player DTO:
using ServiceStack;using ServiceStack.DataAnnotations;using System;public class Player : AuditBase{ [AutoIncrement] public int Id { get; set; } public string Name { get; set; } public int? Age { get; set; } public PositionPlayer Position { get; set; } public string TrainerId { get; set; }}public enum PositionPlayer{ ATT, CC, DF, GK}API Endpoints:
[Tag("players"), ServiceStack.DataAnnotations.Description("Create a new Players")] [LocodeCss(Field = "col-span-12 sm:col-span-6", Fieldset = "grid grid-cols-8 gap-2", Form = "border overflow-hidden max-w-screen-lg")] [ExplorerCss(Field = "col-span-12 sm:col-span-6", Fieldset = "grid grid-cols-6 gap-8", Form = "border border-indigo-500 overflow-hidden max-w-screen-lg")] [Route("/players", "POST")] [ValidateHasRole(Roles.Employee)] [AutoApply(Behavior.AuditCreate)] public class CreatePlayer : ICreateDb<Player>, IReturn<BoolResponse> { [ServiceStack.DataAnnotations.Description("Name of Player"), ValidateNotEmpty] public required string Name { get; set; } public int? Age { get; set; } public PositionPlayer Position { get; set; } } [Tag("players")] [ServiceStack.DataAnnotations.Description("Update an existing Player")] [LocodeCss(Field = "col-span-12 sm:col-span-6", Fieldset = "grid grid-cols-8 gap-2", Form = "border overflow-hidden max-w-screen-lg")] [ExplorerCss(Field = "col-span-12 sm:col-span-6", Fieldset = "grid grid-cols-6 gap-8", Form = "border border-indigo-500 overflow-hidden max-w-screen-lg")] [Route("/players/{Id}", "PATCH")] [ValidateHasRole(Roles.Employee)] [AutoApply(Behavior.AuditModify)] public class UpdatePlayer : IPatchDb<Player>, IReturn<IdResponse> { public int Id { get; set; } }The modal opens correctly for new Player records. The URL changes correctly to ?edit=6 when editing, indicating the correct ID is being passed. The modal appears to function as expected with other DTOs, such as Booking, where both create and edit functionalities work. Question:
What might be causing the standard modal not to open for editing existing records? Is there a specific configuration or step I might be missing in ServiceStack or Blazor?