2012-01-13 7 views
12

मैं अपने मॉडल में इस दिनांक समय विशेषता है:डेटा एनोटेशन के साथ दिनांक समय मूल्य प्रतिबंधित

[Required(ErrorMessage = "Expiration Date is required")] 
[DataType(DataType.Date)] 
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)] 
[DisplayName("Expiration Date")] 
public DateTime? ExpirationDate { get; set; } 

मैं चाहूँगा इस विशेषता मान्य करने की है ताकि उपयोगकर्ता एक तारीख है कि आज से पहले हुई प्रवेश नहीं कर सकते। अगर मैं एक पूर्णांक को प्रमाणित कर रहा था, तो मैं यह कर सकता था।

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

लेकिन श्रेणी विशेषता दिनांक दिनांक वस्तु का समर्थन नहीं करती है। क्या डेटटाइम मान के लिए ऐसा कुछ है?

+0

संभव डुप्लिकेट: http://stackoverflow.com/questions/1406046/data-annotation-ranges-of-dates –

+0

या हो सकता है यह संबंधित सवाल से जवाब में से एक: http://stackoverflow.com/ प्रश्न/5390403/डेटाटाइम-तिथि-और-घंटे-सत्यापन-डेटा-एनोटेशन के साथ –

+0

मुझे 100% यकीन नहीं है कि यह संबंधित है लेकिन शायद एमएसडीएन डेटटाइम रेंज वैलिडेटर: 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) 

    } 
} 

अब इस मॉडल को अपनी मॉडल प्रॉपर्टी पर लागू करें।

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

आप [MyDate (ErrorMessage = "आपका संदेश यहां") के रूप में उपयोग कर सकते हैं] – Parminder

संबंधित मुद्दे