【问题标题】:Blazor WebAssembly pass enum as parameter to componentBlazor WebAssembly 将枚举作为参数传递给组件
【发布时间】:2020-07-24 19:43:17
【问题描述】:

我正在创建一个 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" />

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

【问题讨论】:

    标签: asp.net-core enums blazor blazor-webassembly


    【解决方案1】:

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

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

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

    <NavMenu Id="EMenu.Menu1"/>
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-18
      • 2022-08-19
      • 2011-12-04
      • 2021-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多