I have a Datetime field in my Model and need to validate it so that when it is created it has to fall between Now and 6 Years Prior. I have
Even though there is an overload for Range attribute that accepts type and boundary values of that type and allows something like this:
[Range(typeof(DateTime), "1/1/2011", "1/1/2012", ErrorMessage="Date is out of Range")]
what you are trying to achieve is not possible using this attribute. The problem is that attributes accept only constants as parameters. Obviously neither DateTime.Now nor DateTime.Now.AddYears(-6) are constants.
However you can still do this creating your own validation attribute:
public class DateTimeRangeAttribute : ValidationAttribute
{
//implementation
}