1

我一直在尝试 Blazor WebAssembly 并尝试连接到现有的 Kentico Kontent API。

我使用 生成模型DotNet Tool KontentModelGenerator,然后将其传递给 Kentico 的IDeliveryClient实现。

@code{
    private IEnumerable<DinghyClass> dinghyClasses;
    protected override async Task OnInitializedAsync()
    {
        dinghyClasses = (await deliveryClient.GetItemsAsync<DinghyClass>()).Items;
    }
}

然后,这将返回 Kentico 项目中的每个项目(即所有类型的内容模型),而不仅仅是所请求类型的项目。

难道我做错了什么?这是 Kentico 的问题DeliveryClient,还是 Blazor 的解释问题?从返回的数据中创建了一些半填充对象的事实表明 Javascript 正在填充对象而没有任何形式的类型检查。

我在GitHub 上有一个正在部署Here的示例。该页面应列出 5 个小艇类,但对于每个其他内容项也有一个(空)对象。查看 chrome 调试器上的网络选项卡时,所有项目都被返回,而不仅仅是DinghyClass项目。

4

1 回答 1

3

在查看(和测试)您的 GitHub 存储库中的代码时,您似乎已经生成了一个 CustomTypeProvider,但它没有在 Program.cs 中注册。当我添加:

builder.Services.AddSingleton<ITypeProvider, CustomTypeProvider>();

到您的解决方案中的 Program.cs,SDK 返回了 5 条小艇类结果。

于 2020-09-08T19:36:16.967 回答