我有一个本地化的应用程序,我想知道是否可以DisplayName从Resource中为特定模型属性设置。
DisplayName
我想做这样的事情:
public class MyModel { [Required] [DisplayName(Resources.Resources.labelForName)] public string name{ get; set; } }
但是我不能接受,正如编译器所说:“属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式” :(
有什么解决方法吗?我正在手动输出标签,但是验证器输出需要这些标签!
如何编写自定义属性:
public class LocalizedDisplayNameAttribute: DisplayNameAttribute { public LocalizedDisplayNameAttribute(string resourceId) : base(GetMessageFromResource(resourceId)) { } private static string GetMessageFromResource(string resourceId) { // TODO: Return the string from the resource file } }
可以这样使用:
public class MyModel { [Required] [LocalizedDisplayName("labelForName")] public string Name { get; set; } }