【发布时间】:2011-09-20 10:55:54
【问题描述】:
起初对 Microsoft MVC 团队感到抱歉,因为没有简单的解决方案来本地化数据注释验证消息。花了我很多时间,终于没有找到简单的解决方案!
我最终决定继承RequiredAttribute 做本地化。所以我这样做了:
public class MyRequiredAttribute : System.ComponentModel.DataAnnotations.RequiredAttribute
{
public MyRequiredAttribute()
: base()
{
this.ErrorMessageResourceType = typeof(Resources.DataAnnotationDefaults);
this.ErrorMessageResourceName = "Required";
}
}
我在DataAnnotationDefaults.resx 文件中提供了我的本地化消息。
所以我可以简单地使用它
[MyRequired]
public int UnitCode { get; set; }
但问题是:它不适用于客户端,仅适用于服务器端。为什么?我错过了什么?
令人惊讶的是,以下行没问题,并且在客户端也可以工作!
[Required(ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(DataAnnotationDefaults))]
public int UnitCode { get; set; }
如果有人可以帮助我,我会很高兴和感激。
【问题讨论】:
-
将
Required属性放在不可为空的值类型上几乎没有任何意义。int等值类型始终具有默认值。您是否尝试过使用可为空的整数? -
我编辑了你的帖子,请尽量保持客观,不要咆哮。
标签: asp.net-mvc-3 validation data-annotations