Blazor WebAssembly 将枚举作为参数传递给组件

Blazor WebAssembly pass enum as parameter to component

我正在创建一个 Blazor WebAssembly 应用程序,我有一个枚举我想像这样作为参数传递给我的 Blazor 组件

public enum EMenu
{
    Menu1 = 1,
    Menu2 = 2,
    Menu3 = 3,
}

[Parameter] public EMenu Id { get; set; }

<NavMenu id="menu1" />

EMenu 是我的枚举,Id 是我在 NavMenu 组件上的参数。但它会出错并显示 Specified cast is not valid 消息。

我用谷歌搜索并看到了这个 GitHub 问题 https://github.com/dotnet/aspnetcore/issues/19139 并且根据它,当您在枚举值前面加上您的枚举名称时,以下应该有效

<NavMenu id="EMenu.Menu1" />

但它对我不起作用,同样的错误。谁能帮忙指出问题所在?

如果在您的 NavMenu 组件上定义了此参数 属性

[Parameter] public EMenu Id { get; set; }

然后像这样实例化 NavMenu 组件:

<NavMenu Id="EMenu.Menu1"/>

Id 而不是像您那样 id ... Id 是一个以大写字母开头的组件参数。

您的枚举 class 应该位于您的应用程序的根文件夹中。