我正在创建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
消息。
我在Google上搜索并看到了这个GitHub问题https://github.com/dotnet/aspnetcore/issues/19139,并且根据它,当您用枚举名称为枚举值添加前缀时,以下内容应该起作用
<NavMenu id="EMenu.Menu1" />
但是它对我不起作用,同样的错误。有人可以帮忙指出出什么问题吗?
答案 0 :(得分:2)
如果此参数属性是在NavMenu组件上定义的
library(RestRserve)
app = Application$new()
app$add_get(
path = "/hello",
FUN = function(request, response) {
response$set_body("Hello from RestRserve")
})
backend = BackendRserve$new()
backend$start(app, http_port = 8080)
然后您像这样实例化NavMenu组件:
[Parameter] public EMenu Id { get; set; }
<NavMenu Id="EMenu.Menu1"/>
而不是像以前那样的Id
... id
是一个以大写字母开头的组件参数。
您的枚举类应位于应用程序的根文件夹中。