自定义动态数据中的数据注释

时间:2013-05-09 07:16:40

标签: asp.net asp.net-dynamic-data data-annotations

我遇到了一个在动态数据Web应用程序中自定义DataAnnotations的场景。这是场景:

[显示(名称= “DispName”)]

公开字符串DName {get; set;}

我没有为Display DataAnnotation硬编码Name =“DispName”,而是想从DataBase中获取一些值并使其适合于Name属性。像:

[显示(名称= SomeValueFromDB)]

公开字符串DName {get; set;}

有没有办法从数据库中显示Display DataAnnotation的Name属性而不是硬编码它的值?

提前致谢,

Sujith

1 个答案:

答案 0 :(得分:11)

我找到了解决方案。但这仅适用于我们构建应用程序:

创建一个继承 DisplayNameAttribute 的自定义类(说: CustomDisplayNameAttribute )。并将该类名称称为属性名称上方的显示属性(此处为“ CustomDisplayName ”)。

在为Display属性设置DataAnnotation时,从类名中省略“Attribute”部分。即。 DisplayAnnotation for Display属性将为 CustomDisplayName (不是CustomDisplayNameAttribute)。

  public class DomainClass
{
    [CustomDisplayName("")]
    public object PropertyName{ get; set; }
}



public class CustomDisplayNameAttribute : DisplayNameAttribute
    {
        public CustomDisplayNameAttribute(string value)
            : base(GetMessageFromResource(value))
        { }

        private static string GetMessageFromResource(string value)
        {
            return "Custom Display Name";
        }
    }

希望这有助于所有人......

快乐编码......