首页 > 解决方案 > 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 对象作为键这一事实给我带来了麻烦,但我不清楚为什么这不起作用。(在我的应用程序的其他地方使用这些字典当然没有问题。)

标签: c#.netblazor

解决方案


推荐阅读