ASP.NET MVC: атрибут валидации и локализованное сообщение об ошибке
У меня есть ValidationAttribute как:
public class Username : ValidationAttribute
{
public override bool IsValid(object value)
{
if (value == null)
return false;
return RegExp.Validate(RegExpLib.Username,value.ToString());
}
}
..и используя это так:
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 - это файл ресурсов в App_GlobalResources, а «txtUsername» - это имя строки в файле ресурсов.
Проблема: сообщения об ошибках не отображаются.
Вопрос: Как установить сообщение об ошибке, если у меня мало языков на сайте.
Другая информация:
Я могу получить доступSignIn.txtUsername
из Views или любого файла в проекте. От контроллера
ModelState.AddModelError("Username", Resources.SignIn.txtUsername);
также работает нормально ... Я могу назначить ErrorMessage внутри ValidationAttribute, но получил ошибку после второй проверки ... если я поставлю проверку следующим образом -
if(ErrorMessage != Resources.SignIn.txtUsername)
ErrorMessage = Resources.SignIn.txtUsername;
У меня ошибка после переключения на другой язык - ErrorMessage может быть назначен только один раз.
Пожалуйста, посоветуйте, как мне это решить.
Заранее спасибо.