Blazor“使用单选按钮”枚举问题

Bug*_*ver 5 c# razor blazor blazor-server-side

我正在尝试实现https://learn.microsoft.com/en-us/aspnet/core/blazor/forms-validation?view=aspnetcore-3.1#work-with-radio中找到的“使用单选按钮”示例-buttons然而,当我尝试将它与枚举一起使用时遇到了困难。

@page "/RadioButtonExample"
@using System.ComponentModel.DataAnnotations
@using MyApp.Shared

<h1>Radio Button Group Test</h1>

<EditForm Model="model" OnValidSubmit="HandleValidSubmit">
    <DataAnnotationsValidator />
    <ValidationSummary />

    @foreach (int status in Enum.GetValues(typeof(Status)))
    {
        <label>
            <InputRadio name="rate" SelectedValue="status" @bind-Value="model.Status" />
            @status
        </label>
    }

    <button type="submit">Submit</button>
</EditForm>

<p>You chose: @model.Status</p>

@code {
    private Administrator model = new Administrator();

    private void HandleValidSubmit()
    {
        Console.WriteLine("valid");
    }
}
Run Code Online (Sandbox Code Playgroud)

我的枚举定义如下

public enum Status
{
    Disabled = 0,
    Enabled = 1
}
Run Code Online (Sandbox Code Playgroud)

我收到的错误如下,我明白为什么会出现这种情况,但是,我不确定如何最好地解决。

TypeInference.CreateInputRadio_0(RenderTreeBuilder, int, int, object, int, TValue, int, TValue, int, EventCallback, int, Expression>)' 无法从用法中推断出来。尝试显式指定类型参数。

非常感谢任何帮助

Lei*_*nes 6

如果您想对单选按钮使用 foreach 循环枚举,Microsoft 有一个示例 https://learn.microsoft.com/en-us/aspnet/core/blazor/forms-validation?view=aspnetcore-5.0#radio-buttons

<p>
    <InputRadioGroup @bind-Value="starship.Manufacturer">
        Manufacturer:
        <br>
        @foreach (var manufacturer in (Manufacturer[])Enum
            .GetValues(typeof(Manufacturer)))
        {
            <InputRadio Value="manufacturer" />
            <text>&nbsp;</text>@manufacturer<br>
        }
    </InputRadioGroup>
</p>
Run Code Online (Sandbox Code Playgroud)