如何将自定义错误消息返回给View?

时间:2015-03-16 19:25:25

标签: c# asp.net-mvc validation

我创建了一个datechecker类,如果所选日期在过去,则会返回错误:

public class ValidateDateRange : ValidationAttribute
{
    public DateTime FirstDate = DateTime.Today;

    //public DateTime SecondDate { get; set; }

    private const string DefaultIncorrectDateMessage = "The date you entered is incorrect. Please try again";

    public string DateInPastMessage { get; set; }

    //public string DateNotInRangeMessage { get; set; }

    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {          
        // your validation logic
        if (Convert.ToDateTime(value) >= DateTime.Today)
        {
            return ValidationResult.Success;
        }
        else
        {
            return new ValidationResult(DateInPastMessage ?? DefaultIncorrectDateMessage);
        }
    }
}

这是我的观点:

[ValidateDateRange(DateInPastMessage = "Your date is in the past. Please select a date starting from today!")]
[DataType(DataType.Date)]
public DateTime ArrivalDate { get; set; }

这可以正常工作,但是当应用程序在db.SaveChanges()上失败时,DateInPastMessage现在作为调试消息返回。

我希望在View中显示此消息,就像正常的错误消息一样:

enter image description here

如何将自定义错误消息发送到View?可以在没有在我有一个datepicker字段的每个视图中创建自定义jquery验证的情况下完成吗?

1 个答案:

答案 0 :(得分:0)

您应该在ErrorMessage中设置ValidationAttribute。我认为这就是它没有显示的原因。

ErrorMessage = DefaultIncorrectDateMessage;