ASP.NET MVC: ValidationAttribute e ErrorMessage localizado
Eu tenho ValidationAttribute como:
public class Username : ValidationAttribute
{
public override bool IsValid(object value)
{
if (value == null)
return false;
return RegExp.Validate(RegExpLib.Username,value.ToString());
}
}
..e usá-lo assim:
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 é um arquivo de recurso em App_GlobalResources e "txtUsername" - é o nome da string no arquivo de recursos.
Problema: Mensagens de erro não são mostradas.
Pergunta: Como definir a mensagem de erro se eu tiver poucos idiomas no site.
Outra informação:
Sou capaz de acessarSignIn.txtUsername
das exibições ou de qualquer arquivo no projeto. Do controlador
ModelState.AddModelError("Username", Resources.SignIn.txtUsername);
funciona bem também .. Eu posso atribuir ErrorMessage dentro ValidationAttribute, mas tenho erro após segunda validação tentar ... se eu colocar cheque como este -
if(ErrorMessage != Resources.SignIn.txtUsername)
ErrorMessage = Resources.SignIn.txtUsername;
Eu tenho erro depois de mudar para outro idioma - ErrorMessage pode ser atribuído apenas uma vez.
Por favor, conselhos como eu posso resolver isso.
Agradeço antecipadamente.