属性 [必需] 不适用于 Blazor 中用于表单输入验证的 int?

Attribute [Required] not working on int for Form Input validation in Blazor?

Required 属性似乎不适用于整数值。我还在整数字段上尝试了 Range 属性并且表现正常。问题是未进行验证并且未显示前端所需的消息。对于字符串值,该属性的行为符合预期。这是示例代码:

@page "/test"


<EditForm Model="@exampleModel">
    <DataAnnotationsValidator />
    <ValidationSummary />

        <InputNumber @bind-Value="exampleModel.Name2"></InputNumber>

        <button type="submit" value="Save" >
            Submit
        </button>

</EditForm>

@code {
    private ExampleModel exampleModel = new ExampleModel();


    public partial class ExampleModel
    {

        [Required]
        public string Name { get; set; }

        [Required]
        [Range(1, 100, ErrorMessage = "Error Test")]
        public int Name2 { get; set; }


    }
}

Name 的必需属性有效,而 Name2 的必需属性无效。 Name2 的范围属性按预期工作。

我正在使用 ASP.NET Core 3.1 和 Visual Studio 16.9.4。

默认情况下,Name2 属性 等于零。但是因为允许的最小值是 1,所以在加载表单时看不到零。

一些解决方案:

  1. 将 Name2 初始化为 1 到 100 之间的整数值或

  2. 将 Name2 声明为可为 null 的 int

    public int? Name2 { get; set; }