MVC3 IValidatableObject Date

У меня есть базовая форма с полем даты, и я хочу проверить ее внутри IValidatableObject, Тип поля сопоставляется со свойством DateTime, поэтому, если кто-то введет код от 26/15/2011, как вы узнаете это в методе Validate? Строго говоря, это почти как проверка объекта DateTime с DateTime, который не имеет смысла. Любые идеи о том, как обойти это или как обнаружить, что это не та дата?

1 ответ

Реализуйте IValidatableObject для вашего метода и сделайте проверку для этого поля

например

public class YourModel : IValidatableObject
{
    public YourModel()
    {
    }

    [Required(ErrorMessage = "date  is required")]
    public string Date { set; get; }

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        DateTime result;
        bool parseDone = DateTime.TryParse(Date, out result);
        if (!parseDone)
        {
             yield return new ValidationResult(Date + "is invalid", new[] { "Date" });
        }            
    }
}

Я предлагаю использовать jquery validate и jqueryUI календарь на стороне клиента

Надеюсь, поможет

Другие вопросы по тегам