2

我为继承自RequiredAttribute的 DateTime 创建了一个自定义验证属性。由于某种原因,MVC 中某种类型的内置 DateTime 验证覆盖了我的自定义验证,因为当我输入 dd 作为日期值时,我不断收到错误消息“值 'dd' 对日期无效”。如何使用我的自定义验证器获取它,以便显示我自己的错误消息?

查看模型

public class MyViewModel
{
    [Required(ErrorMessage = "Name is required")]
    [Display(Name = "Name")]
    public string Name { get; set; }

    [DateValidation(ErrorMessage = "A valid date is required")]
    [Display(Name = "Date")]
    public DateTime Date { get; set; }
}

验证器

public class DateValidationAttribute : ValidationAttribute
{
    public override bool IsValid(object value)
    {
        DateTime dt;

        return DateTime.TryParse(value.ToString(), out dt);
    }
}

回应 Lars 的回答:如何让它使用在我的模型的验证属性中创建的错误消息,以便我可以为使用相同验证属性的不同模型属性创建不同的错误消息?

4

1 回答 1

0

在里面IsValid你可以改变ErrorMessage

public override bool IsValid(object value)
{
    ErrorMessage = "Date is invalid.";
于 2013-04-10T09:44:47.583 回答