MVC3 IValidatableObject日期

时间:2011-05-26 21:42:16

标签: asp.net-mvc-3 ivalidatableobject

我有一个基本表单,其中包含日期字段,我想在IValidatableObject内验证它。字段的类型映射到DateTime属性,因此如果有人在26/15/2011中键入,您如何在Validate方法中选择它?严格来说,它几乎就像使用DateTime验证DateTime对象一样没有意义。关于如何解决这个或如何检测错误日期的任何想法?

1 个答案:

答案 0 :(得分:1)

在您的方法上实现IValidatableObject并对此字段进行验证

e.g。

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日历

希望有所帮助