所以这就是问题:我有一个表单和一个用[RequiredAttribute]
装饰的属性,尽管它隐藏在表单上。有一个复选框。
点击它时会显示元素。所以我只想在没有隐藏的情况下验证属性,但是当它向控制器发送模型时我仍然看到ModelState.IsValid == false
(虽然它隐藏了元素),所以如何删除与属性相关的所有错误该元素是隐藏的(在javascript中,在浏览器将模型发送到控制器之前)?
修改$('form').validate().errorList
没有帮助
当然我可以有一个布尔标志(isHidden
或其他东西)并根据该标志在控制器上手动检查模型。但也许有更容易的方法来修改客户端上的验证属性,可能它们会影响模型?
答案 0 :(得分:1)
尝试
<script type="text/javascript">
$.validator.setDefaults({
ignore: ""
})
</script>
或者您可以考虑制作自定义验证器。
THIS answer可能有所帮助