【问题标题】:ASP.NET MVC V2 - Buddy ClassesASP.NET MVC V2 - 好友类
【发布时间】:2009-08-07 15:47:04
【问题描述】:

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

【问题讨论】:

    标签: asp.net-mvc preview


    【解决方案1】:

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

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

    /* 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; }
    }
    

    【讨论】:

    • 非常感谢!这正是我所需要的。 :)
    • 这不是一个“点”,因为它是处理从 EF 或 LINQ2SQL 自动生成的类的丑陋解决方法。由于生成了类文件,因此无法将属性应用于属性,因此创建了一个 hacky 替代方案。
    • 我正在尝试使用这种方法,但在 EditorForModel() 中似乎唯一有效的属性是“DisplayName”。
    猜你喜欢
    • 2013-02-14
    • 2012-09-16
    • 1970-01-01
    • 2011-04-06
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 2016-06-26
    • 2010-12-13
    相关资源
    最近更新 更多