2012-01-13 3 views
12

でDateTime値を制限します。私が整数を検証していれば、私はこれを行うことができます。は、私は私のモデルでは、このDateTimeの属性を持つデータ注釈

[Range(1, int.MaxValue, ErrorMessage = "Value must be greater than 0")] 

ただし、range属性はDateTimeオブジェクトをサポートしていません。 DateTimeの値にはこれがありますか?

+0

が重複する可能性:http://stackoverflow.com/questions/1406046/data-annotation-ranges-of-dates –

+0

それとも、この関連する質問から回答の1:http://stackoverflow.com/質問/ 5390403/datetime-date-and-time-validation-with-data-annotation –

+0

私はこれが100%確信しているわけではありませんが、多分MSDN DateTimeRangeValidatorです:http://msdn.microsoft.com/en-us/ライブラリ/ ff649440.aspx –

答えて

32

これはあなたに役立つでしょう。

public class MyDateAttribute : ValidationAttribute 
{ 
    public override bool IsValid(object value)// Return a boolean value: true == IsValid, false != IsValid 
    { 
     DateTime d = Convert.ToDateTime(value); 
     return d >= DateTime.Now; //Dates Greater than or equal to today are valid (true) 

    } 
} 

ここで、この属性をModelプロパティに適用します。

public class SomeModel 
    { 
     [Display(Name = "Date of birth")] 
     [MyDate(ErrorMessage ="Invalid date")] 
     public DateTime DateOfBirth { get; set; } 
    } 
+2

[MyDate(ErrorMessage = "Your message here")]として使用できます。 – Parminder

関連する問題