我创建了一个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中显示此消息,就像正常的错误消息一样:
如何将自定义错误消息发送到View?可以在没有在我有一个datepicker字段的每个视图中创建自定义jquery验证的情况下完成吗?
答案 0 :(得分:0)
您应该在ErrorMessage
中设置ValidationAttribute
。我认为这就是它没有显示的原因。
ErrorMessage = DefaultIncorrectDateMessage;