我正在使用业务对象的API,我无法访问代码。我直接在剃刀视图上使用这些对象,并希望能够在实例化对象后应用我的自定义displayName属性。
所以,而不是:
[DisplayName("First Name")]
public string GivenName;
我想这样做:
Profile.GivenName.DisplayName("FirstName");
我理解如何创建自定义属性,但是在编写程序时遇到了麻烦。
一旦我能做到这一点,我就可以应用更多的DataAnnotations。
答案 0 :(得分:2)
为什么不从业务对象派生一个类并使用MetaDataType Attribute?
[MetadataType(typeof(IMyAttributes))
public DerivedClass : BusinessClass
{
}
public interface IMyAttributes
{
[Required]
public string Name { get; set; }
}
答案 1 :(得分:0)
您可以创建自己的ModelMetadataProvider并让它从其他来源查找元数据。
请在此处查看摘要类:http://msdn.microsoft.com/en-us/library/system.web.mvc.modelmetadataprovider.aspx
默认提供程序使用DataAnnotations,但您可以轻松编写一个查看SQL数据库或XML文件或类似内容的提供程序。