比如我的Model 里的Name是这样定义的        [DataType(DataType.Text)]
        [Required(ErrorMessage = "账户名称必填")]
        [RegularExpression(@"^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$",ErrorMessage="用户名不符合格式")]
        [DisplayName("账户名称")]
        public string Name { get; set; }我现在的项目是多语言的。View页面调用Model的时候。DisplayName,可能会显示:
中文版显示:账户名称,
英文版显示:AccountName. 
还有RegularExpression 也是随时会变的。。
有什么办法能动态的改变上面的 标签吗?

解决方案 »

  1.   

    使用资源文件        [Required(ErrorMessageResourceType = typeof(ErrorMessage), ErrorMessageResourceName = "ARTICLE_NULL_SOURCE")]
            [StringLength(250, ErrorMessageResourceType = typeof(ErrorMessage), ErrorMessageResourceName = "ARTICLE_MAX_LENGTH_SOURCE")]
            public string Source { get; set; }
      

  2.   

    DisplayName不支持国际化.
    有个叫Display的标签支持国际化.
    但是我试验过Display不能实现你的需求.
    不过我有一个方案
    http://www.cnblogs.com/jianjialin/archive/2011/06/22/2087438.html
    里面写了个小DEMO. 可以用类似于特性来解决