Adnotacja walidacji daty większej niż równa lub równa dzisiaj w MVC3

Czy ktoś widział adnotację danych MVC3 dla walidacji daty, która wymaga, aby jedna wybrana data była równa lub większa niż bieżąca data?

Jeśli jest już trzecia strona, to też jest fajne. Używam już rozszerzeń DataAnnotationsExtensions, ale nie oferuje to, czego szukam.

Nie ma na to żadnego odniesienia. Tak więc, mając nadzieję, że ktoś już to rozwiązał, zanim spróbuję wymyślić koło i napisać własny, niestandardowy walidator.

próbowałemRange ale to wymaga 2 dat i oba muszą być stałymi w formacie łańcuchowym, takim jak[Range(typeof(DateTime), "1/1/2011", "1/1/2016")] ale to nie pomaga. I rozszerzenia danychMin walidator akceptuje tylkoint idouble

Aktualizacja Rozwiązany

Dzięki @BuildStarted skończyło się na tym, że dzięki mojemu skryptowi działa świetnie po stronie serwera, a teraz po stronie klienta

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;

namespace Web.Models.Validation {

    [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
    public sealed class DateMustBeEqualOrGreaterThanCurrentDateValidation : ValidationAttribute, IClientValidatable {

        private const string DefaultErrorMessage = "Date selected {0} must be on or after today";

        public DateMustBeEqualOrGreaterThanCurrentDateValidation()
            : base(DefaultErrorMessage) {
        }

        public override string FormatErrorMessage(string name) {
            return string.Format(DefaultErrorMessage, name);
        }  

        protected override ValidationResult IsValid(object value, ValidationContext validationContext) {
            var dateEntered = (DateTime)value;
            if (dateEntered < DateTime.Today) {
                var message = FormatErrorMessage(dateEntered.ToShortDateString());
                return new ValidationResult(message);
            }
            return null;
        }

        public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context) {
            var rule = new ModelClientCustomDateValidationRule(FormatErrorMessage(metadata.DisplayName));
            yield return rule;
       }
    }

    public sealed class ModelClientCustomDateValidationRule : ModelClientValidationRule {

        public ModelClientCustomDateValidationRule(string errorMessage) {
            ErrorMessage = errorMessage;
            ValidationType = "datemustbeequalorgreaterthancurrentdate";
        }
    }
}

I w moim modelu

[Required]
[DateMustBeEqualOrGreaterThanCurrentDate]
public DateTime SomeDate { get; set; }

Skrypt po stronie klienta

/// <reference path="jquery-1.7.2.js" />

jQuery.validator.addMethod("datemustbeequalorgreaterthancurrentdate", function (value, element, param) {
    var someDate = $("#SomeDate").val();
    var today;
    var currentDate = new Date();
    var year = currentDate.getYear();
    var month = currentDate.getMonth() + 1;  // added +1 because javascript counts month from 0
    var day = currentDate.getDate();
    var hours = currentDate.getHours();
    var minutes = currentDate.getMinutes();
    var seconds = currentDate.getSeconds();

    today = month + '/' + day + '/' + year + '  ' + hours + '.' + minutes + '.' + seconds;

    if (someDate < today) {
        return false;
    }
    return true;
});

jQuery.validator.unobtrusive.adapters.addBool("datemustbeequalorgreaterthancurrentdate");

questionAnswers(3)

yourAnswerToTheQuestion