我正在创建一个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
是一个以大写字母开头的组件参数。
枚举类应该位于应用程序的根文件夹中。