ASP.NET MVC: ValidationAttribute i zlokalizowana wiadomość ErrorMessage
Mam ValidationAttribute jak:
public class Username : ValidationAttribute
{
public override bool IsValid(object value)
{
if (value == null)
return false;
return RegExp.Validate(RegExpLib.Username,value.ToString());
}
}
..i używając go tak:
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 jest plikiem zasobów w App_GlobalResources, a „txtUsername” - jest nazwą łańcucha w pliku zasobów.
Problem: Komunikaty o błędach nie są wyświetlane.
Pytanie: Jak ustawić komunikat o błędzie, jeśli na stronie jest kilka języków.
Inna informacja:
Jestem w stanie uzyskać dostępSignIn.txtUsername
z widoków lub dowolnego pliku w projekcie. Z kontrolera
ModelState.AddModelError("Username", Resources.SignIn.txtUsername);
działa dobrze również .. Mogę przypisać ErrorMessage wewnątrz ValidationAttribute, ale dostałem błąd po drugiej walidacji spróbuj ... jeśli umieściłem sprawdzanie w ten sposób -
if(ErrorMessage != Resources.SignIn.txtUsername)
ErrorMessage = Resources.SignIn.txtUsername;
Mam błąd po przełączeniu na inny język - ErrorMessage można przypisać tylko raz.
Proszę o radę, jak mogę to rozwiązać.
Z góry dziękuję.