不同语言的MVC数据注释?

Kiy*_*shi 4 model-view-controller asp.net-mvc asp.net-mvc-3

我正在使用这样的代码:

   @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)
Run Code Online (Sandbox Code Playgroud)

它的工作正常,因为我的数据注释/消息/标签都是英文的.但是,有什么方法可以有多种语言并在它们之间切换?

如果我的网站有一个选择日语和英语的语言选择器怎么办?我可以为每种语言使用不同的数据注释吗?

Pra*_*sad 5

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

2>然后创建模型

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

}
Run Code Online (Sandbox Code Playgroud)

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);
Run Code Online (Sandbox Code Playgroud)

请查看以下链接

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