为什么 Blazor WebAssembly GetItemsAsync<T>() 中的 Kentico-Kontent .NET SDK 运行 返回所有类型的项目?
Why is Kentico-Kontent .NET SDK running in Blazor WebAssembly GetItemsAsync<T>() returning items of all types?
我一直在试用 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;
}
}
然后 returns Kentico 项目中的每个项目(即所有类型的内容模型),而不仅仅是请求类型的项目。
我是不是做错了什么?这是 Kentico 的 DeliveryClient
的问题还是 Blazor 如何解释它的问题?根据返回的数据创建了一些半填充的对象这一事实表明 Javascript 正在填充对象而没有任何形式的类型检查。
我在 GitHub which is deploying Here 上有一个例子。该页面应列出 5 艘小艇 类,但每个其他内容项也有一个(空)对象。在 chrome 调试器上查看“网络”选项卡时,将返回所有项目,而不仅仅是 DinghyClass
个项目。
在查看(和测试)您的 GitHub 存储库中的代码时,您似乎生成了一个 CustomTypeProvider,但它没有在 Program.cs 中注册。当我添加时:
builder.Services.AddSingleton<ITypeProvider, CustomTypeProvider>();
到 Program.cs 在您的解决方案中,SDK 返回了 5 个小艇 class 结果。
我一直在试用 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;
}
}
然后 returns Kentico 项目中的每个项目(即所有类型的内容模型),而不仅仅是请求类型的项目。
我是不是做错了什么?这是 Kentico 的 DeliveryClient
的问题还是 Blazor 如何解释它的问题?根据返回的数据创建了一些半填充的对象这一事实表明 Javascript 正在填充对象而没有任何形式的类型检查。
我在 GitHub which is deploying Here 上有一个例子。该页面应列出 5 艘小艇 类,但每个其他内容项也有一个(空)对象。在 chrome 调试器上查看“网络”选项卡时,将返回所有项目,而不仅仅是 DinghyClass
个项目。
在查看(和测试)您的 GitHub 存储库中的代码时,您似乎生成了一个 CustomTypeProvider,但它没有在 Program.cs 中注册。当我添加时:
builder.Services.AddSingleton<ITypeProvider, CustomTypeProvider>();
到 Program.cs 在您的解决方案中,SDK 返回了 5 个小艇 class 结果。