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 应该位于您的应用程序的根文件夹中。
我正在创建一个 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 应该位于您的应用程序的根文件夹中。