从资源中检索显示名称
在本地化应用程序中,开发人员经常需要为模型属性显示用户友好的标签。虽然 DisplayName 属性允许指定静态显示名称,但在某些情况下可能需要从外部源(例如资源文件)动态检索这些名称。
不幸的是,单独使用 DisplayName 属性并不能提供从资源指定动态值的能力。遇到编译器错误“属性参数必须是属性参数类型的常量表达式、typeof 表达式或数组创建表达式”,表示提供的参数必须是静态值。
解决方法.NET 4 和 MVC 3
对于使用 MVC 3 和 .NET 4 的应用程序,通过使用更新的 Display 属性可以找到解决方案System.ComponentModel.DataAnnotations 命名空间。此属性扩展了其前身的功能,包括利用本地化的能力。
要使用此属性,请按如下方式修改您的模型:
public class MyModel { [Required] [Display(Name = "labelForName", ResourceType = typeof(Resources.Resources))] public string name { get; set; } }
注意:此解决方法要求将资源文件标记为“嵌入式资源”并使用“ResXFileCodeGenerator”自定义工具。此外,App_GlobalResources 或 App_LocalResources 不应与 MVC 一起使用。
以上是如何从 .NET 中的资源文件动态检索显示名称?的详细内容。更多信息请关注PHP中文网其他相关文章!