【发布时间】:2009-09-26 14:55:45
【问题描述】:
我有类似的 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。来自控制器
ModelState.AddModelError("Username", Resources.SignIn.txtUsername);
也可以正常工作。我可以在 ValidationAttribute 中分配 ErrorMessage,但在第二次验证尝试后出错...如果我像这样放置检查 -
if(ErrorMessage != Resources.SignIn.txtUsername)
ErrorMessage = Resources.SignIn.txtUsername;
切换到另一种语言后出现错误 - ErrorMessage 只能分配一次。
我该如何解决?
【问题讨论】:
标签: asp.net-mvc