ASP.NET MVC: ValidationAttribute und lokalisierte ErrorMessage
Ich habe ValidationAttribute wie:
public class Username : ValidationAttribute
{
public override bool IsValid(object value)
{
if (value == null)
return false;
return RegExp.Validate(RegExpLib.Username,value.ToString());
}
}
..und wie folgt verwenden:
public class AccountSignIn
{
[Username(ErrorMessageResourceName ="txtUsername",ErrorMessageResourceType=typeof(SignIn))]
public string Username { get; set; }
public string Password { get; set; }
public bool RememberMe { get; set; }
public string ReturnUrl { get; set; }
}
SignIn ist eine Ressourcendatei bei App_GlobalResources und "txtUsername" ist ein Zeichenfolgenname in der Ressourcendatei.
Problem: Fehlermeldungen werden nicht angezeigt.
Frage: Wie stelle ich eine Fehlermeldung ein, wenn die Website nur wenige Sprachen enthält?
Noch eine Info:
Ich kann darauf zugreifenSignIn.txtUsername
aus Ansichten oder einer beliebigen Datei im Projekt. Vom Controller
ModelState.AddModelError("Username", Resources.SignIn.txtUsername);
Funktioniert auch einwandfrei. Ich kann ErrorMessage in ValidationAttribute zuweisen, habe aber nach dem zweiten Validierungsversuch einen Fehler erhalten.
if(ErrorMessage != Resources.SignIn.txtUsername)
ErrorMessage = Resources.SignIn.txtUsername;
Ich habe einen Fehler, nachdem ich in eine andere Sprache gewechselt habe - ErrorMessage kann nur einmal zugewiesen werden.
Bitte Rat, wie ich es lösen kann.
Danke im Voraus.