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);
}
我正在编写一个带有 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);
}