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