asp net mvc - 有一个模型属性引用另一个模型属性

时间:2016-11-24 19:50:52

标签: c# asp.net

我想添加' Price'在B类作为参考' Price'在A级 我想避免重复声明属性:

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级我想改变我不想要的范围 必须记住哪些其他类具有相同的属性。

2 个答案:

答案 0 :(得分: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 :(得分:0)

你可以为这个

定义一个常量
public static class Constants
{
    public const int PriceMin = 1;
    public const int PriceMax = 1000;
}

....


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

或者您可以继承Range属性,如

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

然后你可以做

[MyRange]

当您想要更改值时,只需在MyRangeAttribute.cs

中更改它