使用Range中的db值进行模型验证

时间:2011-02-09 16:58:37

标签: asp.net-mvc asp.net-mvc-3

我有两张桌子,广告系列和广告,有一对多的关系。在广告创建期间,用户选择广告将属于的预定义广告系列。 Campaign有一个RRP货币字段,而广告有一个SalePrice货币字段。我所追求的是一种确保提交的Advert.SalePrice为> =所选广告系列RRP的方法。

这可以在模型中完成吗?在Advert_Validation中有什么东西?甚至可以用方法调用填充Range的值吗?

[Range(0, getCampaignRRP(), ErrorMessage = "Value must be equal or greater than the Campaign RRP")]
public double SalePrice { get; set; }

或者我需要在控制器级别进行检查吗?所有帮助表示赞赏!

全心全意,

2 个答案:

答案 0 :(得分:2)

您可以使用新的Remote属性。基本上它调用一个动作并返回true或false。这是一个link的示例。

答案 1 :(得分:0)

您可以继承RangeAttribute类并使用它。

public class MyRange: RangeAttribute
    {
        public override bool IsValid(object value)
        {
            //Your validation here.
            return MyValidateRange(value, 0, getCampaignRRP());
        }
    }

[MyRange(0, 0, ErrorMessage = "Value must be equal or greater than the Campaign RRP")]
public double SalePrice { get; set; }