Настраиваемые атрибуты в c #, которые сравнивают 2 свойства даты в приложении mvc

Я хочу сравнить два свойства даты в приложении mvc с флажками. Моя дата возврата не должна быть меньше даты отъезда. Я получаю сообщение об ошибке «_RetDate не является допустимым аргументом именованного атрибута, поскольку он не является допустимым типом параметра атрибута»

вот мой код

    public bool OneWay { get; set; }
    public bool Return { get; set; }
    [Required]
    [Display(Name = "Departure Date")]
    [ReturnDatenotGreater(_RetDate = "ReturnDate",ErrorMessage="ReturnDate can't be less that departure date")]         
    public DateTime DepartureDate { get; set; }
    [Display(Name = "Return Date")]
    public DateTime ReturnDate { get; set; }

вот мой собственный класс атрибута

  public class ReturnDatenotGreaterAttribute : ValidationAttribute
  {
    public ReturnDatenotGreaterAttribute(DateTime Returdate)
    {
        _RetDate = Returdate;
    }
    public DateTime _RetDate { get; set; }

    public override bool IsValid(object value)
    {
        var departuredate= (DateTime)value;

        if (departuredate >_RetDate)
        {
            return false;
        }

        else

        return true;
    }

}

person Ravi Hanok    schedule 18.09.2013    source источник


Ответы (1)


Я думаю, вы неправильно указываете дату возврата. Это может помочь: Проверка зависимых свойств пользовательской модели с использованием данных Аннотации.

person meilke    schedule 18.09.2013
comment
Привет, meilke, я видел ссылку ur, я не смог найти подходящую логику, не могли бы вы просмотреть код и исправить его, где в моем коде не так - person Ravi Hanok; 18.09.2013
comment
Я в этом плане не профи. Но из быстрого поиска в Google я обнаружил, что вам, возможно, придется использовать а) базовый конструктор и б) имена свойств в виде строк. Кажется, у вашего кода проблемы с синтаксическим анализом / преобразованием строки "ReturnDate" в DateTime. - person meilke; 18.09.2013