如何解决属性 [必需] 不适用于 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,所以在加载表单时您看不到零。
一些解决方案:
-
将 Name2 初始化为 1 到 100 之间的整数值或
-
将 Name2 声明为可为空的 int
public int? Name2 { get; set; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。