title: MVC3 ValidationAttribute for DateTime? returning DateTime.Max in IsValid(...)
body: <p>I'm trying to write a custom ValidationAttribute for a DateTime?</p>
  
  <p>However, when it hits <code>IsValid(object value)</code> the value is already <code>DateTime.Max</code></p>
  
  <p>Nothing I can see in my code has set this value, but it means I am struggling to validate it.</p>
  
  <p>The rule I want is "Null or After Today" - which means if there is a Null value then it's fine, but if there is a value then I want to validate.</p>
  
  <pre><code>public class AfterTodayAttribute : ValidationAttribute, IClientValidatable
  {
      public AfterTodayAttribute()
      {
      }
  
      //Tried this as well...same result
      //protected override ValidationResult IsValid(object value, ValidationContext validationContext)
      //{
      //    return base.IsValid(value, validationContext);
      //}
  
      public override bool IsValid(object value) 
      {
          //value is already a DateTime and set to DateTime.Max
          var valid = false; // for testing only
          return valid;
      }
  }
  
  ...
  [Display(Description = "Expiry Date")]
  [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
  [DataType(DataType.Date)]
  [AfterToday(false, ErrorMessage = "The Limit Expiry Date must be later than Today")]
  public DateTime? NewExpiryDate { get; set; }
  ...
  </code></pre>