Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.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# 视图模型属性在运行时具有更改的验证规则_C#_Model View Controller_Validation_Attributes - Fatal编程技术网

C# 视图模型属性在运行时具有更改的验证规则

C# 视图模型属性在运行时具有更改的验证规则,c#,model-view-controller,validation,attributes,C#,Model View Controller,Validation,Attributes,我是C#MVC新手,我正在尝试向表单中使用的视图模型添加一些动态验证检查。例如,我有一个名为FirstName的字符串属性。我可以向其中添加属性StringLength(10)和Required() 我的问题是,根据其他字段的不同,FirstName StringLength可能从10到20不等。我仍然希望使用MVC验证,但可以修改它。我知道属性绑定到类,所以可能我使用了错误的东西 我想要属性验证功能,但在运行时可以修改。这可能吗 属性中的值必须是文字。您仍然可以使用基于属性的验证,但需要使用C

我是C#MVC新手,我正在尝试向表单中使用的视图模型添加一些动态验证检查。例如,我有一个名为FirstName的字符串属性。我可以向其中添加属性StringLength(10)和Required()

我的问题是,根据其他字段的不同,FirstName StringLength可能从10到20不等。我仍然希望使用MVC验证,但可以修改它。我知道属性绑定到类,所以可能我使用了错误的东西


我想要属性验证功能,但在运行时可以修改。这可能吗

属性中的值必须是文字。您仍然可以使用基于属性的验证,但需要使用
CustomValidation
标记并将其指向要使用的方法。如果它依赖于对象中的多个字段,则需要将其放在类而不是属性上。

属性中的值必须是文本。您仍然可以使用基于属性的验证,但需要使用
CustomValidation
标记并将其指向要使用的方法。如果它依赖于对象中的多个字段,则需要将其放在类而不是属性上。

似乎可以通过实现DataAnnotationsModelValidatorProvider在运行时添加验证属性:

您似乎可以通过实现DataAnnotationsModelValidatorProvider在运行时添加验证属性:

谢谢。这让我想出了解决问题的办法。谢谢。这让我想出了解决问题的办法。