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