Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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_Validation_Data Annotations - Fatal编程技术网

Asp.net mvc 将DataAnnotations验证与复杂的业务规则相结合

Asp.net mvc 将DataAnnotations验证与复杂的业务规则相结合,asp.net-mvc,validation,data-annotations,Asp.net Mvc,Validation,Data Annotations,我了解用基本的必需长度和最小长度注释类属性,以及获得asp.net mvc服务器端和客户端验证的所有好处 但是,是否有人有一个链接显示如何将此“基本”验证与更复杂的业务规则相结合。我将如何运行业务规则功能,例如,客户是否在去年订购了数据库hit required中的任何内容,并且仍然使用相同的DataAnnotation和mvc验证管道 目标:不需要两种生成和输出验证方法的方法。在调用操作之前运行数据注释。然后,不管验证是否成功,仍然会调用该操作。如果DA检测到无效数据,则您的ModelStat

我了解用基本的必需长度和最小长度注释类属性,以及获得asp.net mvc服务器端和客户端验证的所有好处

但是,是否有人有一个链接显示如何将此“基本”验证与更复杂的业务规则相结合。我将如何运行业务规则功能,例如,客户是否在去年订购了数据库hit required中的任何内容,并且仍然使用相同的DataAnnotation和mvc验证管道


目标:不需要两种生成和输出验证方法的方法。

在调用操作之前运行数据注释。然后,不管验证是否成功,仍然会调用该操作。如果DA检测到无效数据,则您的ModelState将无效

在这里之后,您仍然可以对业务规则执行任何您想要的验证,如果您想要的话,通常在没有数据注释的情况下也可以这样做。在您的操作中,即使数据注释验证通过,也可以向ModelState添加错误。 在本例中,您使用ModelState.addError添加错误,这些错误将添加到DA提供的任何错误中。所以在你看来,错误来自哪里并不重要


或者,如果规则是通用的,则可以编写自己的注释标记。数据注释是与其源一起分发的,因此您可以完全控制它。

在调用操作之前运行数据注释。然后,不管验证是否成功,仍然会调用该操作。如果DA检测到无效数据,则您的ModelState将无效

在这里之后,您仍然可以对业务规则执行任何您想要的验证,如果您想要的话,通常在没有数据注释的情况下也可以这样做。在您的操作中,即使数据注释验证通过,也可以向ModelState添加错误。 在本例中,您使用ModelState.addError添加错误,这些错误将添加到DA提供的任何错误中。所以在你看来,错误来自哪里并不重要

或者,如果规则是通用的,则可以编写自己的注释标记。数据注释对象与其源一起分发,因此您可以完全控制它。

来自:

要创建自定义验证检查,可以创建从ValidationAttribute类派生的类,也可以创建执行验证检查的方法,并在将CustomValidationAttribute应用于数据成员时引用该方法。创建从ValidationAttribute派生的类时,重写IsValid方法以提供自定义验证检查的逻辑

那里似乎有示例代码。

来自:

要创建自定义验证检查,可以创建从ValidationAttribute类派生的类,也可以创建执行验证检查的方法,并在将CustomValidationAttribute应用于数据成员时引用该方法。创建从ValidationAttribute派生的类时,重写IsValid方法以提供自定义验证检查的逻辑


这里似乎有示例代码。

您可以使用Microsoft企业库5中的VAB应用程序验证块,它实际上基于DataAnnotations类,但您可以通过配置轻松完成复杂的业务逻辑。。。
我建议您检查一下…

您可以使用Microsoft Enterprise Library 5中的VAB应用程序验证块,它实际上基于DataAnnotations类,但您可以通过配置轻松完成复杂的业务逻辑。。。
我建议您查看一下…

看看下面的文章,您可以在同一字段上多次使用DataAnnotation,比较N个属性数和N个值数


看一看下面的文章,您可以在同一个字段上多次使用DataAnnotations,比较N个属性和N个值