Blazor WASM - 将 ChangeEventArgs 转换为枚举类型

Blazor WASM - convert ChangeEventArgs to enum type

我正在编写一个带有 HTML select 下拉菜单的 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 转换为 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);
    }