C#数据注释未显示正确的显示名称

问题描述

这是我的Model类的摘录

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

这是我的剃须刀文件中的摘录

                <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中对其进行了测试

解决方法

您可以这样做

[Required]
[DataType(DataType.Date,ErrorMessage = "The Birth Day field must be a date.")]
[Display(Name = "Birth Day")]
public DateTime customerBirthDate { get; set; } = DateTime.Today;
,
    [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;

您可以将错误消息用于必填属性