【问题标题】:Blazor WASM - convert ChangeEventArgs to enum type [duplicate]Blazor WASM - 将 ChangeEventArgs 转换为枚举类型
【发布时间】:2021-12-27 21:27:59
【问题描述】:

我正在编写一个带有 HTML 选择下拉菜单的 ASP.NET Blazor WASM 程序。它有一个链接到枚举变量类型的value 属性,并使用@onchange 指令调用自定义方法。

下拉组件

<select name="category" class="form-control selectpicker " value="@_searchCategory" @onchange="UpdateCategory">
    @foreach (var item in Enum.GetValues(typeof(SearchCategory)))
        {
            <option value="@item">@item</option>
        }
</select>

搜索变量

private SearchCategory _searchCategory = SearchCategory.Port;
private enum SearchCategory
    {
        Port,
        Name,
        Script,
        Version
    }

UpdateCategory 方法

UpdateCategory(ChangeEventArgs args) {
    _searchCategory = args.Value; //error
    PerformSearch();
...
}

如何将string (args.Value) 转换为 Enum (SearchCategory)?

【问题讨论】:

  • 又是什么问题?您正在尝试将字符串 (args.Value) 转换为 Enum...所以...
  • @Ergis 是的,这就是我现在遇到的问题。我已经尝试过使用 (SearchCategory) 进行投射

标签: c# blazor-webassembly asp.net-core-5.0


【解决方案1】:

args 转换为string,然后将string 转换为SearchCategory,如下所示。

private void UpdateCategory(ChangeEventArgs args) {
        var searchCategoryAsString = args.Value?.ToString();

        if (string.IsNullOrEmpty(searchCategoryAsString)) return;

        _searchCategory = (SearchCategory) Enum.Parse(typeof(SearchCategory), searchCategoryAsString);
        Console.WriteLine(_searchCategory);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-21
    • 2010-12-21
    • 2012-09-30
    • 1970-01-01
    • 2010-10-11
    • 2018-02-14
    相关资源
    最近更新 更多