rev*_*kpi 4 c# asp.net-mvc asp.net-mvc-3
在我的 MVC 3 应用程序中,我需要进行本地化。我想请教一下什么是最好的方法。还有一个问题。我在我的应用程序中使用这样的模型:
public class MyModel
{
[HiddenInput(DisplayValue = false)]
public Guid? DepartmentId { get; set; }
[Display(Name = "Caption")]
public string Caption { get; set; }
[Display(Name = "Owner")]
public string Owner { get; set; }
[Display(Name = "Enabled")]
public bool Enabled { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我如何在这个模型类中使用本地化?
更新
我决定创建一个自定义的 resource.xml 而不是使用 asp.net 的 Resource .resx 实现,我如何在这个模型类中使用本地化?
在 [Display] 属性中使用以下设置:
[Display(Name = "Caption", ResourceType = typeof(SomeResource))]
Run Code Online (Sandbox Code Playgroud)
其中 SomeResource 是资源文件的类名。要获得正确的命名空间和类名,只需打开添加资源文件时生成的Designer.cs文件。确保资源文件的自定义工具设置为PublicResXFileCodeGenerator。这可以在资源文件的“属性”窗口中完成。
如果您使用 resources.xml 文件,那么可能会出现重载或新属性,例如您可以使用 XPath 表达式和 xml 文件的位置。
你可以连接一个新的提供者,比如:
ModelValidatorProviders.Providers.Add(new CustomMetadataValidationProvider());
Run Code Online (Sandbox Code Playgroud)
在哪里
public class CustomMetadataValidationProvider : DataAnnotationsModelValidatorProvider
{
}
Run Code Online (Sandbox Code Playgroud)
您可能还对Orchard CMS解决它的方式感兴趣。他们使用.po 文件。
| 归档时间: |
|
| 查看次数: |
655 次 |
| 最近记录: |