如何确定为什么不引人注目的验证不起作用

时间:2011-09-01 19:50:20

标签: asp.net-mvc-3 unobtrusive-validation

有没有办法追踪为什么不显眼的验证不起作用?

我已经禁用了所有自定义验证程序,只使用了MVC验证程序,当我点击提交时,它仍会回发到服务器进行验证。

这让我疯了。我唯一能想到的是我有一个隐藏的输入,除了[HiddenInput(DisplayValue = false)]之外没有任何验证属性。

是否有特定的javascript函数我可以设置一个断点来确定哪个字段导致表单提交?

编辑:

我只是意识到只有IE8才会导致服务器端验证。 IE9,FF和Chrome都很好。

编辑2:

好的,它一定是缓存问题。在某些时候它再次开始工作,即使在恢复每一个之后它仍然在工作。

经验教训。当你遇到愚蠢的问题时,Alwasy会清除你的缓存。

1 个答案:

答案 0 :(得分:3)

确保您参考了以下脚本并且路径正确无误:

<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>

并且您已在web.config中启用了客户端验证:

<add key="ClientValidationEnabled" value="true" />

另一个重要的方面是,如果表单由于AJAX调用而被注入到DOM中,那么不显眼的验证将不会附加到其元素上,并且它将无法工作。在将AJAX成功回调注入DOM后,您必须使用$.validator.unobtrusive.parse方法attach it manually进行{{3}}。

此外,FireBug的控制台选项卡可能对您的代码显示潜在的javascript错误很有用。