0

日付フィールドを持つ基本的なフォームがあり、内で検証したいと思いIValidatableObjectます。フィールドのタイプはDateTimeプロパティにマップされているので、誰かが2011年6月15日と入力した場合、Validateメソッドでそれをどのように取得しますか?厳密に言えば、それは意味のないDateTimeでDateTimeオブジェクトを検証するのとほとんど同じです。これを回避する方法や、間違った日付を検出する方法についてのアイデアはありますか?

4

1 に答える 1

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 calendar を使用することをお勧めします

それが役に立てば幸い

于 2011-05-26T22:00:13.100 に答える