Ich verwende ASP.NET MVC mit DataAnnotations. Ich habe das folgende benutzerdefinierte ValidationAttribute erstellt, das einwandfrei funktioniert.ASP.NET MVC: Hinzufügen von benutzerdefinierten ErrorMessage, die DisplayName zu benutzerdefinierten 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);
}
}
jedoch die Fehlermeldung, die angezeigt wird, ist der Standard „Das Feld * ist ungültig“. Ich möchte dies ändern, um zu sein: "Der [DisplayName] muss zwischen [minlength] und [maxlength]" sein, aber ich kann nicht herausfinden, wie der DisplayName oder sogar der Name des Feldes von innerhalb dieser Klasse erhalten.
Wer weiß?
Works! Vielen Dank! – Alistair
groß - obwohl ich nicht verstehe, warum der Rückruf im Konstruktor erforderlich ist – dice