How to Validate Forms with ASP.NET MVC 2 Data Annotations: Listing 3.
Server-Side Custom Validator for WithinDays()
<DisplayName("Anniversary Date")>
<Required()>
'<Range(GetType(DateTime), "01/01/2000", "12/31/2010")>
<WithinDays(PriorDays:=-30, SubsequentDays:=30, ErrorMessage:=
"Date Must be Within 30 Days")>
<DisplayFormat(DataFormatString:="{0:d}",
ApplyFormatInEditMode:=True)>
Public Property AnniversaryDate As Object
End Class
Public Class WithinDaysAttribute
Inherits ValidationAttribute
Public Property PriorDays As Integer
Public Property SubsequentDays As Integer
Private ParmDate As DateTime
Public Overrides Function IsValid(ByVal value As Object)
As Boolean
If IsNothing(value) Then _
Return False
If (DateTime.TryParse(value.ToString(), ParmDate) = False)
Then Return False
Dim WithinRange As Boolean =
(ParmDate >= DateTime.Now.AddDays(PriorDays)) And
(ParmDate <= DateTime.Now.AddDays(SubsequentDays))
Return WithinRange
End Function
End Class