У меня есть этот класс с именем DateTimeViewModelNullable, где у меня есть метод, который возвращает DateTime?
public DateTime? GetDateTime
{
get
{
DateTime date;
if (DateTime.TryParse(Date, CultureInfo.CurrentCulture, DateTimeStyles.None, out date))
{
try
{
return new DateTime(date.Year, date.Month, date.Day, ParseInt(Hour), ParseInt(Minute), 0, DateTimeKind.Utc);
}
catch (ArgumentException)
{
return null;
}
}
return null;
}
}
У меня есть 2 свойства этого типа в модели представления.
public DateTimeViewModelNullable DateOut {get; задавать; }
[CustomIsValidDate(DateOut.GetDateTime,DateIn.GetDateTime,ErrorMessage = "Returning date must be higher than ingoing date!")]
public DateTimeViewModelNullable DateIn { get; set; }
Мне нужно убедиться (и распечатать для пользователя), если начальная дата больше конечной, поэтому я создал customvalidator, но не работает
public class CustomIsValidDate : ValidationAttribute
{
public DateTime? StartDate { get; set; }
public DateTime? EndDate { get; set; }
public CustomIsValidDate(DateTime? startDate, DateTime? endDate)
{
StartDate = startDate;
EndDate = endDate;
}
public override bool IsValid(object value)
{
if (StartDate == null || EndDate == null)
return true;
if (EndDate > StartDate)
return true;
return false;
}
}
Я получаю ошибку Ошибка Ссылка на объект требуется для нестатического поля, метода или свойства