微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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 的 required 属性有效,而 Name2 的属性无效。 Name2 的 Range 属性按预期工作。

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

解决方法

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

一些解决方案:

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

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

    public int? Name2 { get; set; }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。