2016-11-24 110 views
0

我想在B類上添加'價格'作爲參考A類上的'價格'。 我想避免重複聲明屬性:asp net mvc - 有一個模型屬性引用另一個模型屬性

public class A{ 

    // ... stuff 

    [Required] 
    [Display(Name = "Price (Euros)")] 
    [Range(1, 1000)] 
    public float Price { get; set; } 

    // ... more stuff 
} 

public class B{ 

    // ... stuff 

    [Required] 
    [Display(Name = "Price (Euros)")] 
    [Range(1, 1000)] 
    public float Price { get; set; } 

    // ... more stuff 
} 

因此,舉例來說,如果A類我想改變的範圍,我不希望 必須記住其他類具有相同的屬性。

回答

1

遺傳怎麼樣?

public class A{ 

    // ... stuff 
    [Required] 
    [Display(Name = "Price (Euros)")] 
    [Range(1, 1000)] 
    public float Price { get; set; } 

    // ... more stuff 
} 

public class B : A{ 

    // ... stuff 

    // ... more stuff 
} 
+1

可能想在你的答案中提及接口:) – user1567453

0

您可以定義一個常數這

public static class Constants 
{ 
    public const int PriceMin = 1; 
    public const int PriceMax = 1000; 
} 

.... 


[Range(Constants.PriceMin, Constants.PriceMax)] 

或者你可以繼承像

public class MyRangeAttribute : RangeAttribute 
{ 
    public MyRangeAttribute() 
     :base(1, 1000) 
    { 
    } 
} 

那麼你可以做

[MyRange] 

當檔屬性你想改變價值只是陳ge裏面MyRangeAttribute.cs

相關問題