2012-12-20 40 views
0

我想知道是否有辦法在元數據的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;} 
    } 
} 

但在使用卡車或汽車模型中的元數據不適用,除非我也指定在部分類註釋爲卡車和轎車的看法。

回答

1

,因爲發動機是在你的類,讓您的註解反映的方式,他們需要被應用到兒童最一流的。

您的其他選擇是直接將DataAnnotations應用於所討論的類,而不是使用單獨的元數據類型。

+0

好的。謝謝!只是好奇,因爲在我的這個問題的實現中,我實際上有6種不同的模型,從一個模型擴展。如果我可以更改父類的DataAnnotation並且它會影響所有的子元素,而不必在每個類中放入每個註釋,那麼它就會更加清潔和可維護。 –