由于要在Silverlight项目中实现一个新用户注册页面,要使用.aspx,于是便尝试使用ASP.NET MVC 2.0。问题是我要在Model中实现本地化多语言,在 Silverlight 中,是这样写的:// System.ComponentModel.DataAnnotations.DisplayAttribute 
// 有一个 ResourceType 属性,用来指向存储本地化资源的class
[Required]
[Display(Name = "CompanyName", ResourceType = (typeof(Words)))]
public string CompanyName{ get;set; }
可是在 ASP.NET MVC 2.0,却是使用 System.ComponentModel.DisplayNameAttribute ,没有 ResourceType 属性,不知该如何实现本地化?// System.ComponentModel.DisplayNameAttribute 
// 没有 ResourceType 属性,不知该如何实现本地化
[Required]
[DisplayName("公司名称")]
public string CompanyName{ get;set; }PS:仅仅用了半个晚上的 ASP.NET MVC 2.0,感觉是如果说 ASP.NET 是在模拟 WinForm,那 ASP.NET MVC 2.0 就是在模拟 Silverlight、WPF,不过后两者的MVMM模式中的“MM”应是模拟不了的吧。

解决方案 »

  1.   

    http://connect.microsoft.com/VisualStudio/feedback/details/538434/asp-net-mvc-2-0-displayattribute-doesnt-uses-localised-resources
    中有提到这个问题,原来 [Display()] 是.NET 4.0 中才有的啊。
      

  2.   

    写个派生类,将就用吧    public class ResourceDisplayNameAttribute 
            : System.ComponentModel.DisplayNameAttribute
        {
            public override string DisplayName
            {
                get
                {
                    return "本地语言" + base.DisplayNameValue;
                }
            }
            public ResourceDisplayNameAttribute():base()
            {
            }
            public ResourceDisplayNameAttribute(string displayName)
                : base(displayName)
            {
            }
        }
      

  3.   

    VS2010 简体中文版已出, .NET Framework 4.0简体中文语言包也已出。ASP.NET MVC 2 支持中文版了,各种校验提示,如[Require]、[StringLength],可以显示简繁体中文了,
    但是仍然不支持[Display()],只支持[DisplayName()]