Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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
C# 如何使用asp.net数据批注指定值大于其以前的值_C#_Asp.net_Data Annotations_Model Validation - Fatal编程技术网

C# 如何使用asp.net数据批注指定值大于其以前的值

C# 如何使用asp.net数据批注指定值大于其以前的值,c#,asp.net,data-annotations,model-validation,C#,Asp.net,Data Annotations,Model Validation,我如何确保一个实体比之前的实体更大,例如在我下面的例子中,给汽车加油或给油箱加水: [Required()] [Range(0.00, 100000.00)] public double BeforeRefill { get; set; } [Required()] [Range(BeforeRefill , 100000.00)] public double AfterRefill { get; set; } 我想实现上面这样的功能,但它在我

我如何确保一个实体比之前的实体更大,例如在我下面的例子中,给汽车加油或给油箱加水:

    [Required()]
    [Range(0.00, 100000.00)]
    public double BeforeRefill { get; set; }

    [Required()]
    [Range(BeforeRefill , 100000.00)]
    public double AfterRefill { get; set; }
我想实现上面这样的功能,但它在我的代码中不起作用


是否有一种方法可以创建一个自定义验证属性,并在其中执行此类检查。或者如何实现我自己的验证,以便在调用
ModelState.isvalid()
时,它将进行检查?

只是从validationattribute类继承。另见


您可以从validationContext.ObjectInstance获取要检查的对象,然后可以使用反射查找其他值。

NET中的属性参数必须是常量。听起来您需要自定义模型验证。不能为此使用验证属性,必须使用不同的方法。如果将属性参数设置为“BeforeRefill”(或在BeforeRefill属性上设置匹配属性,如[FindPropertyById(1)],则属性参数为常量然后可以查找具有匹配属性的属性。BeforeRefill的值可以在isValid调用中解析