Атрибут 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; }
}
}
Обязательный атрибут для имени работает, а атрибут для имени 2 - нет. Атрибут Range для Name2 работает должным образом.
Я использую ASP.NET Core 3.1 с Visual Studio 16.9.4.
int
(в отличие отint?
), поэтому оно всегда будет иметь значение (0) и, следовательно, требуется, не будет помечено. Использовать int? если это необязательно. - person Steve Greene   schedule 28.04.2021