Validation 仅当复选框为true时验证字段(ASP.NET-MVC3)

Validation 仅当复选框为true时验证字段(ASP.NET-MVC3),validation,data-annotations,modelstate,asp.net-mvc-3,Validation,Data Annotations,Modelstate,Asp.net Mvc 3,我有一个表单,其中有默认隐藏的字段,只有在用户选中“附加信息”复选框时才可见。 我希望这些字段能够根据客户端和服务器端的dataannotation属性(如required、string length、match regex等)进行验证,但前提是选中了“additional info”复选框 dataannotations中是否有用于此的内置解决方案 最好的解决方案是只修改我的viewmodel,但是如果我需要在控制器中编写自定义代码来弄脏我的手,那就这样吧 我希望能够使用ModelState.

我有一个表单,其中有默认隐藏的字段,只有在用户选中“附加信息”复选框时才可见。 我希望这些字段能够根据客户端和服务器端的dataannotation属性(如required、string length、match regex等)进行验证,但前提是选中了“additional info”复选框

dataannotations中是否有用于此的内置解决方案

最好的解决方案是只修改我的viewmodel,但是如果我需要在控制器中编写自定义代码来弄脏我的手,那就这样吧

我希望能够使用ModelState.IsValid之类的东西,所以如果没有其他方法,篡改ModelState也是一个选项


你能为这个问题提出一些好的解决方案吗?

我知道这是个老问题。但现在有一个很好的方法可以做到这一点:。
例如,
[RequiredIf]
属性。

找到解决方案了吗?我也有同样的怀疑!我找到了一种构建VM的方法,可以切换表单部分,并且只需要使用jquery.validation扩展重新分析表单。我一有时间就发布我的解决方案。