以编程方式将自定义属性应用于属性



我正在使用业务对象的API,其中我无法访问代码。我直接在我的剃刀视图上使用这些对象,并希望能够在对象实例化后应用我的自定义displayName属性。

所以,不用这个:

[DisplayName("First Name")]
public string GivenName;

我想做:

Profile.GivenName.DisplayName("FirstName");

我理解如何创建自定义属性,但我有麻烦,使他们程序化。

一旦我能做到这一点,我就可以应用更多的DataAnnotations

为什么不从业务对象派生一个类并使用MetaDataType属性呢?

[MetadataType(typeof(IMyAttributes))
public DerivedClass : BusinessClass
{
}
public interface IMyAttributes
{
  [Required]
  public string Name { get; set; }
}

您可以创建自己的ModelMetadataProvider,并让它从其他来源查找元数据。

查看抽象类:http://msdn.microsoft.com/en-us/library/system.web.mvc.modelmetadataprovider.aspx

默认提供程序使用DataAnnotations,但您也可以轻松编写一个用于查看SQL数据库或XML文件或类似内容的提供者。

最新更新