asp.net-mvc – ASP.NET MVC:ValidationAttribute和本地化的ErrorMessa
|
我有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” – 是资源文件中的字符串名称. 问题: 题: 另一个信息: 我可以从Views或项目中的任何文件访问SignIn.txtUsername.来自控制器 ModelState.AddModelError("Username",Resources.SignIn.txtUsername);
工作得很好..我可以在ValidationAttribute内部分配ErrorMessage,但在第二次验证后得到错误尝试…如果我这样检查 – if(ErrorMessage != Resources.SignIn.txtUsername)
ErrorMessage = Resources.SignIn.txtUsername;
切换到另一种语言后出错 – ErrorMessage只能分配一次. 请告诉我如何解决它. 先感谢您. 解决方法我在使用本地化错误消息和DataAnnotations方面遇到了一些问题,与您的情况非常相似.虽然我最终没有将空白显示为错误消息,但我总是抛出一些异常.我的解决方案是:>在App_GlobalResources / Errors.resx中打开资源文件,将其属性更改为Build Action:Embedded Resource,Custom Tool:PublicResXFileCodeGenerator,Custom Tool Namespace:Resources(visual studio在自动生成这些内容时做了一些奇怪的事情,所以再次检查一下是否正常) 我在Model类中的例子: [Required(ErrorMessageResourceType = typeof(Resources.Errors),ErrorMessageResourceName="ResponseMessageRequired")]
public string message { get; set; } (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-core-webapi – 在asp.net核心web api中上传多部分
- asp.net – 如何在页面加载中以编程方式向页面添加控件?
- asp.net-mvc-5 – MVC 5 AttributeRouting Catch All
- asp.net-mvc – 在MVC 3中写入只读会话
- 使asp.net应用程序符合IPv6标准
- 如何模拟我的ASP.NET应用程序的HTTP 500错误?
- entity-framework – 在Enitity Framework中使用Asp.net身份
- ASP.NET Web应用程序 – WebResource.axd和ScriptResource.
- asp.net-mvc – 存储库模式和单元测试ASP.NET Web API
- asp.net-mvc – FormsAuthentication.RedirectFromLoginPag
