asp.net-mvc – Asp.Net MVC:一些非本地化的默认错误消息?
|
我有一个完全本地化的网站,主要是法语/英语/德语. 现在,一切都进行得很好,但是我确实注意到asp.net MVC有一些错误信息的问题. 我的模型中有一个属性: [Required]
[LocalizedDisplayName("PublicationDate",NameResourceType = typeof(LocalizationResources.Views.Composer.BaseInfoForm))]
public DateTime PublicationDate { get; set; }
LocalizedDisplayname是DisplayNameAttribute的扩展名,它在Resx文件中进行正确的翻译 线程CurrentCulture和CurrentCultureUI都在fr-FR中,所以消息应该以法语显示(就像我的[必需]属性一样),自动显示“Le champ Publication est requis”. 但是在DateTime的情况下,如果输入的日期不是日期,则验证器只会返回一个“asdfasdf”对于“出版”无效. >为什么MVC有时会以法语返回我的错误消息,有时以英文返回,以同样的形式(我确切地说,这是默认的错误消息) 非常感谢你 解决方法我认为这两个问题回答你:
一个显着的区别是[必需]属性执行显式的客户端验证,而当您的字段不包含有效的DateTime时,您将通过缺省模型绑定器的失败获得服务器端验证,以从发布的方式创建一个DateTime对象表单数据.这是一个完全不同的机制,我猜这是不同的结果.当然,如果结果是一致的,那将是很好的.
有两种方式: >告诉默认模型binder使用DefaultModelBinder.ResourceClassKey属性为错误消息使用什么资源字符串.有关如何实现这一点的说明(对于MVC 2,但在MVC 3中没有改变),请参阅this related question的答案 [Required]
[DataType(DataType.Date,ErrorMessageResourceType = typeof(MyLocalizedResources),ErrorMessageResourceName = "DateTimeFormatValidationMessage")]
[LocalizedDisplayName("PublicationDate",NameResourceType = typeof(LocalizationResources.Views.Composer.BaseInfoForm))]
public DateTime PublicationDate { get; set; } (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-web-api – 更好地总是在Web Api中返回HttpRespons
- asp.net – 我可以在一个Web项目中拥有多个web.config文件吗
- asp.net – Web API中的每路径格式化程序配置
- asp.net-mvc – 如何在asp.net mvc 3中使用@html.actionlin
- asp.net-mvc – 没有找到与名为“User”的控制器匹配的类型
- asp.net – 用于Web应用程序的实体框架过度杀毒?
- asp.net – 如何添加ROW_NUMBER到LINQ查询或实体?
- 如何在asp.net webforms捆绑中将cdN添加到bundle.config
- dependency-injection – 从ILogger访问当前的HttpContext
- asp.net-mvc – HttpPostedFileBase总是在ASP.NET MVC中返回
- 如何删除IIS / ASP.NET响应标头
- ASP.NET MVC中的经典ASP(C#)
- asp.net-core – 如何在aspnet核心应用程序中为静
- ASP.NET linkbutton两次提高onBeforeUnload事件
- asp.net-mvc – 更改数据注释中的验证消息
- asp.net-core – TagHelper,用于将路由值作为链接
- asp.net – 从Web应用程序编辑MS Office文档:自
- 使用System.Net.Mail中的SMTP发送邮件(带附件)
- asp-classic – 哪里可以存储经典ASP的连接字符串
- 加载ASP.Net MVC JSONResult jQuery DataTables
