ServiceStack Blazor 模式无法打开以编辑现有播放器 DTO

问题描述 投票:0回答:1

我正在使用 ServiceStack 并使用该框架提供的标准模式来处理 Blazor Web 应用程序中的 CRUD 操作。创建新记录时该模式会按预期打开,但编辑现有记录时不会打开。

问题是这样的:

当我双击网格中的玩家记录进行编辑时,URL 会正确更新以包含

?edit=6
(或其他玩家 ID),但模式不会出现。然而,对于创建一个新的播放器,一切都按预期进行。

这是我的

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 端点:

     [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; }
   }

模式会正确打开新的玩家记录。编辑时,URL 正确更改为 ?edit=6,表明正在传递正确的 ID。该模式似乎与其他 DTO 一样发挥了预期的作用,例如 Booking,其中创建和编辑功能都可以工作。问题:

什么可能导致标准模式无法打开以编辑现有记录? ServiceStack 或 Blazor 中是否存在我可能缺少的特定配置或步骤?

c# blazor modal-dialog servicestack web-development-server
1个回答
0
投票

该模式似乎与其他 DTO 一起按预期运行,例如 Booking,其中创建和编辑功能都可以工作。

您已经确定了正确的行为,只有当数据模型具有创建和更新 API 时,才会出现创建和编辑表单。

© www.soinside.com 2019 - 2024. All rights reserved.