Аннотации данных C # не отображают правильное отображаемое имя

#c# #razor #model #blazor #data-annotations

#c# #razor #Модель #blazor #данные-аннотации

Вопрос:

Вот фрагмент из моего класса модели

     [Required]
    [DataType(DataType.Date)]
    [Display(Name = "Birth Day")]
    public DateTime customerBirthDate { get; set; } = DateTime.Today;
  

Вот фрагмент из моего файла razor

                 <div class="wrap-input100 validate-input">
                    <span class="label-input100">Date of Birth</span>
                    <InputDate class="input100" id="birthday" name="birthday" @bind-Value="CurrentCustomerSubmission.customerBirthDate" />
                    <ValidationMessage For="@(() => Model.customerBirthDate)" />
                </div>
  

Когда я удаляю дату из поля InputDate, я ожидаю, что она скажет

«Поле День рождения должно быть датой».

но то, что я на самом деле вижу, это

«Поле customerBirthDate должно содержать дату».

Я тестировал это в Chrome

Ответ №1:

Вы можете сделать это следующим образом

 [Required]
[DataType(DataType.Date,ErrorMessage = "The Birth Day field must be a date.")]
[Display(Name = "Birth Day")]
public DateTime customerBirthDate { get; set; } = DateTime.Today;
  

Комментарии:

1. Я не могу заставить это работать на сервере Blazor 3.1.

Ответ №2:

     [Required(ErrorMessage ="{0} field  is Required"]
    [DataType(DataType.Date,ErrorMessage = "{0} field must be a date.")]
    [Display(Name = "Birth Day")]
    public DateTime customerBirthDate { get; set; } = DateTime.Today;
  

Вы можете использовать сообщение об ошибке для требуемого атрибута