Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 使用范围内的db值进行模型验证_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc 使用范围内的db值进行模型验证

Asp.net mvc 使用范围内的db值进行模型验证,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,我有两张桌子,一对多关系的活动和广告。在创建广告期间,用户选择广告将属于的预定义活动。活动有一个RRP货币字段,广告有一个SalePrice货币字段。我想要的是确保提交的Advert.SalePrice>=所选的活动RRP的方法 这可以在模型中完成吗?在广告中有类似的东西吗?甚至可以用方法调用填充范围的值吗 [Range(0, getCampaignRRP(), ErrorMessage = "Value must be equal or greater than the Campaign RR

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

这可以在模型中完成吗?在广告中有类似的东西吗?甚至可以用方法调用填充范围的值吗

[Range(0, getCampaignRRP(), ErrorMessage = "Value must be equal or greater than the Campaign RRP")]
public double SalePrice { get; set; }
还是需要在控制器级别进行检查?感谢大家的帮助

谢谢大家


Jay

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

您可以继承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; }