日期的范围属性

时间:2015-05-27 01:57:34

标签: c# data-annotations date-range asp.net-mvc-5.2 displayattribute

我有这个类重写RangeAttribute:

public class RangeDateAttribute : RangeAttribute
{
    public RangeDateAttribute()
        : base(typeof(DateTime),
    DateTime.Now.AddYears(-20).ToShortDateString(), DateTime.Today.ToShortDateString()) { }
}

我的属性的DataAnnotation:

[RangeDate(ErrorMessage = "Value for {0} must be between {1} and {2}")]
public DateTime anyDate { get; set; }

我在验证中使用了[ToShortDateString()]方法,但是当显示错误时,它会带来时间。例如:

Value for anyDate must be between 26/05/1995 00:00:00 and 26/05/2015 00:00:00

我该如何解决这个问题?

感谢。

2 个答案:

答案 0 :(得分:1)

您可以在错误消息属性上使用一点格式:

[RangeDate(ErrorMessage = "Value for {0} must be between {1:dd/MM/yyyy} and {2:dd/MM/yyyy}")]
public DateTime anyDate { get; set; }

答案 1 :(得分:0)

您必须使用例如ArgumentException(String)方法格式化错误消息,并应用与短日期相关的String.Format(“{0:d}”,dt)格式规范。希望这可能有所帮助。最好的问候,