c# - Blazor:无法获取以对象为键的字典
问题描述
我正在开发一个 Blazor 应用程序,在我的一个视图的功能部分中,我有:
var dict = await Http.GetJsonAsync<Dictionary<Node, Decimal>>($"api/Home/test");
Node 是我定义的自定义对象。然后在相应的控制器动作中,我有:
[HttpGet("[action]")]
public Dictionary<Node, decimal> test()
{
var dict = new Dictionary<Node, decimal>();
var node = new Node();
dict[node] = 10m;
return dict;
}
当我尝试以这种方式获取字典时,我在控制台中看到此错误:
WASM:[System.ArgumentException] 值“App.Shared.Node”不是“App.Shared.Node”类型,不能在此通用集合中使用。
如果我更新了这些词典之一,但什么也没写,我看不到这个错误。我怀疑使用我的 Node 对象作为键这一事实给我带来了麻烦,但我不清楚为什么这不起作用。(在我的应用程序的其他地方使用这些字典当然没有问题。)
解决方案
推荐阅读
- travis-ci - 什么是正确的 Travis API 调用(或库方法)以首先启动和观察构建,然后检索其状态和构建日志?
- android - 使用 androidx 的 Android 谷歌登录给出了失败的解决方案:Landroid/support/v4/util/ArraySet 错误
- php - 数据仅在按钮双击时发送到 AjAX
- node.js - 在 NodeJS 中处理“原子性”
- windows - 什么是遗留存储?
- firebase - 通过 userID 参数保护路径
- php - 如果我知道 $post 的 ID,我可以从 $posts 中删除特定的 $post 吗?
- ionic-framework - Ionic 3 自定义图标
- python - 在python中从字符串构建图
- linux - Terraform VM 创建然后删除