Asp.net mvc 在数据注释中扩展类

Asp.net mvc 在数据注释中扩展类,asp.net-mvc,Asp.net Mvc,我试图找出是否有一种方法可以在MVC的DataAnnotations中为元数据扩展一个类 例如: 如果我有一个名为Vehicle的模型,它包含所有汽车共享的基本属性,然后我有一个卡车模型和一个汽车模型。这两个都是车辆模型的子类 现在假设车辆包含发动机尺寸和车辆重量属性,卡车包含牵引能力属性,汽车包含行李箱能力属性 是否有一种方法可以让我只为车辆中共享的属性指定一次元数据 我试过类似的方法: [MetadataType(typeof(VehicleMD))] public partial clas

我试图找出是否有一种方法可以在MVC的DataAnnotations中为元数据扩展一个类

例如:

如果我有一个名为Vehicle的模型,它包含所有汽车共享的基本属性,然后我有一个卡车模型和一个汽车模型。这两个都是车辆模型的子类

现在假设车辆包含发动机尺寸和车辆重量属性,卡车包含牵引能力属性,汽车包含行李箱能力属性

是否有一种方法可以让我只为车辆中共享的属性指定一次元数据

我试过类似的方法:

[MetadataType(typeof(VehicleMD))]
public partial class Vehicle
{
   public class VehicleMD
   {
       [Display(Name = "Engine Size")]
       public double EngineSize {get;set;}

       [Display(Name = "Vehicle Weight")]
       public double VehicleWeight {get;set;}
    }
 }
但是在使用Truck或Car模型的视图中,元数据不会应用,除非我还为Truck和Car指定了分部类中的注释。

由于引擎对类进行反射以获取注释的方式,它们需要应用于most子类


您的另一个选择是直接将DataAnnotation应用于所讨论的类,而不是使用单独的元数据类型。

Ok。谢谢我很好奇,因为在我解决这个问题的过程中,我实际上有6个不同的模型,它们是从一个模型扩展而来的。我想如果我可以更改父类的DataAnnotation,它会影响所有子类,而不必在每个类中放置每个注释,那么它会更干净、更易于维护。