Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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 根据列表框的选择,使用DataAnnotations以不同方式验证文本框_Asp.net Mvc_Data Annotations - Fatal编程技术网

Asp.net mvc 根据列表框的选择,使用DataAnnotations以不同方式验证文本框

Asp.net mvc 根据列表框的选择,使用DataAnnotations以不同方式验证文本框,asp.net-mvc,data-annotations,Asp.net Mvc,Data Annotations,我有一个自定义的验证属性,可以检查以确保生日至少在过去18年。我现在有一个要求,如果一个单独的下拉列表中选择了一个特定的州,我将把它改为过去的19年 是否可以动态更改自定义验证?这是我目前正在使用的 public class MyCustomDateAttribute: ValidationAttribute { public override bool IsValid(object value) { DateTime dt = (DateTime)value; if (dt>= Date

我有一个自定义的验证属性,可以检查以确保生日至少在过去18年。我现在有一个要求,如果一个单独的下拉列表中选择了一个特定的州,我将把它改为过去的19年

是否可以动态更改自定义验证?这是我目前正在使用的

public class MyCustomDateAttribute: ValidationAttribute
{
public override bool IsValid(object value)
{
DateTime dt = (DateTime)value;
if (dt>= DateTime.Now.AddYears(-18)){
return false;}
return true;
}}}
以某种方式将-18改为-19


我知道这只是服务器端,这没关系。

在这种情况下,您应该重写并实现

protected override ValidationResult IsValid(object value, ValidationContext validationContext)
validationContext参数是解决问题的关键

完整的解决方案在