Атрибут диапазона для дат
У меня есть этот класс, переопределяющий RangeAttribute:
public class RangeDateAttribute : RangeAttribute
{
public RangeDateAttribute()
: base(typeof(DateTime),
DateTime.Now.AddYears(-20).ToShortDateString(), DateTime.Today.ToShortDateString()) { }
}
DataAnnotation для моего атрибута:
[RangeDate(ErrorMessage = "Value for {0} must be between {1} and {2}")]
public DateTime anyDate { get; set; }
Я использую метод [ToShortDateString()] в этой проверке, но когда отображается ошибка, она приходит со временем. Пример:
Value for anyDate must be between 26/05/1995 00:00:00 and 26/05/2015 00:00:00
Как я могу решить это?
Благодарю.
2 ответа
Решение
Вы можете использовать небольшое форматирование для атрибута сообщения об ошибке:
[RangeDate(ErrorMessage = "Value for {0} must be between {1:dd/MM/yyyy} and {2:dd/MM/yyyy}")]
public DateTime anyDate { get; set; }
Необходимо отформатировать сообщение об ошибке, используя, например, метод ArgumentException(String) и применить спецификацию форматирования, например String.Format("{0:d}", dt), относящуюся к короткой дате. Надеюсь, что это может помочь. С наилучшими пожеланиями,