0

我试图找出是否有办法在 MVC 的 DataAnnotations 中为元数据扩展一个类。

例如:

如果我有一个名为 Vehicle 的模型,其中包含任何汽车共有的所有基本属性,那么我有一个 Truck 模型和一个 Car 模型。两者都是 Vehicle 模型的子类。

现在假设 Vehicle 包含 Engine Size 和 Vehicle Weight 的属性,Truck 包含 Towing Capacity 的属性,Car 包含 Trunk Capacity 的属性。

有没有办法让我只指定一次在车辆中共享的属性的元数据?

我试过类似的东西:

[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;}
    }
 }

但是在使用卡车或汽车模型的视图中,除非我还在卡车和汽车的部分类中指定注释,否则不会应用元数据。

4

1 回答 1

1

不。

由于引擎反映您的类以获取注释的方式,它们需要应用于最子类。

您的另一个选择是将 DataAnnotations 直接应用于相关类,而不是使用单独的元数据类型。

于 2012-12-20T16:15:03.467 回答