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

时间:2011-08-08 08:21:52

标签: validation data-annotations modelstate asp.net-mvc-3

我有一个表单,其中有默认隐藏的字段,只有在用户选中“其他信息”复选框时才可见。 我希望这些字段在BOTH客户端和服务器端对数据注释属性(例如必需,字符串长度,匹配正则表达式等)进行验证,但只有在选中“附加信息”复选框时才会验证。

数据注释中是否有内置的解决方案?

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

我希望能够使用ModelState.IsValid这样的东西,所以如果没有其他方法,也可以选择篡改modelstate。

你能为此提出一些好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

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