6

有没有人有 ASP.NET MVC 2 Preview 1 中的伙伴类示例?我似乎在 MSDN 上找不到任何关于它的信息,但根据ScottGu的说法,他们在最新版本中为它添加了功能。

4

1 回答 1

10

我相信您正在寻找的是 MetadataTypeAttribute。这不是 MVC 特有的,而是 3.5 中引入的 DataAnnotations 命名空间的一部分。它允许您装饰类本身外部的部分类的成员。

例如,如果您有一个名为 Customer 的已生成分部类类型并希望向其添加属性,您可以在同一命名空间中创建一个新分部并使用 MetadataType 标记它。然后创建具有匹配属性的元数据类并装饰它们。

/* Generated class */
public partial class Customer
{ 
  public string Name { get; set; } 
}


/* MetadataType decorated class */
[MetadataType(CustomerMetadata)]
public partial class Customer
{ /* ... */ }


/* Metadata type */
public class CustomerMetadata
{
  [Required(ErrorMessage = "Name is required")]
  public string Name { get; set; }
}
于 2009-08-07T16:27:23.413 回答