我正在使用带有 DataAnnotations 的 ASP.NET MVC。我创建了以下自定义 ValidationAttribute ,它工作正常。
public class StringRangeAttribute : ValidationAttribute
{
public int MinLength { get; set; }
public int MaxLength { get; set; }
public StringRangeAttribute(int minLength, int maxLength)
{
this.MinLength = (minLength < 0) ? 0 : minLength;
this.MaxLength = (maxLength < 0) ? 0 : maxLength;
}
public override bool IsValid(object value)
{
//null or empty is <em>not</em> invalid
string str = (string)value;
if (string.IsNullOrEmpty(str))
return true;
return (str.Length >= this.MinLength && str.Length <= this.MaxLength);
}
}
但是,出现的错误消息是标准的“字段 * 无效”。我想将其更改为:“[DisplayName] 必须介于 [minlength] 和 [maxlength] 之间”,但是我无法弄清楚如何从此类中获取 DisplayName 甚至字段的名称。
有人知道吗?