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

Ray*_*Ray 2 enums asp.net-core blazor blazor-webassembly

我正在创建一个 Blazor WebAssembly 应用程序,我有一个枚举,我想将其作为参数传递给我的 Blazor 组件,如下所示

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

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

<NavMenu id="menu1" />
Run Code Online (Sandbox Code Playgroud)

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

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

<NavMenu id="EMenu.Menu1" />
Run Code Online (Sandbox Code Playgroud)

但它对我不起作用,同样的错误。有人可以帮忙指出出了什么问题吗?

Isa*_*aac 5

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

[Parameter] public EMenu Id { get; set; }
Run Code Online (Sandbox Code Playgroud)

然后实例化 NavMenu 组件,如下所示:

<NavMenu Id="EMenu.Menu1"/>
Run Code Online (Sandbox Code Playgroud)

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

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