我正在使用这样的代码:

   @Html.LabelFor(m => m.Login.Password, new { @class = "adm" })
   @Html.PasswordFor(m => m.Login.Password, new { @class = "adm", size = 30 })
   @Html.ValidationMessageFor(m => m.Login.Password)


由于我的数据注释/消息/标签全部为英文,因此效果很好。但是,有什么方法可以使我拥有不止一种语言并在它们之间切换?

如果我的站点具有在日语和英语之间进行选择的语言选择器怎么办?每种语言都可以有不同的数据注释吗?

最佳答案

1>您需要为每种语言创建一个资源文件

2>然后创建模型

public class User
{
    [Required(ErrorMessageResourceType=typeof(Languages.Resource),ErrorMessageResourceName="required")]
    [Display(ResourceType=typeof(Languages.Resource),Name="name")]
    public string Name { get; set; }

}


3>您的意见还不错

4>选择和设置不同的语言:您可以创建一个淹没菜单(或任何您想要的菜单),然后在服务器上,将所选语言存储在cookie中。并为每个请求设置current_culture_info,如下所示

    string currentChoosenLanguage= readFromCookie(); //or may be from Database, whatever suits you
    CultureInfo ci = new CultureInfo(currentChoosenLanguage); //i think jp: for japanese
    System.Threading.Thread.CurrentThread.CurrentUICulture = ci;
    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(ci.Name);


请检查下面的链接

http://haacked.com/archive/2011/07/14/model-metadata-and-validation-localization-using-conventions.aspx/

10-05 20:50
查看更多