Asp.net mvc 2 MVC:客户端验证失败,但数据仍被发布

Asp.net mvc 2 MVC:客户端验证失败,但数据仍被发布,asp.net-mvc-2,asp.net-mvc-2-validation,Asp.net Mvc 2,Asp.net Mvc 2 Validation,如上所述,我实现了客户端验证,没有问题,它会根据需要弹出相关消息。但是,即使表单未处于有效状态,提交按钮仍显示为提交表单 控制器方法立即抛出它,因为ModelState无效,但是是否有一个标志/属性我可以检查客户端以防止post发生 更新: 问题似乎是因为表单是使用jquery post异步提交的,因此我的javascript方法是发布数据,而不管验证状态如何。所以我要寻找的是,在我写那篇文章之前,按照的思路做一些事情,如果([Property/Method,指示MVC模型状态]==false)

如上所述,我实现了客户端验证,没有问题,它会根据需要弹出相关消息。但是,即使表单未处于有效状态,提交按钮仍显示为提交表单

控制器方法立即抛出它,因为ModelState无效,但是是否有一个标志/属性我可以检查客户端以防止post发生

更新: 问题似乎是因为表单是使用jquery post异步提交的,因此我的javascript方法是发布数据,而不管验证状态如何。所以我要寻找的是,在我写那篇文章之前,按照
的思路做一些事情,如果([Property/Method,指示MVC模型状态]==false)返回false
我考虑过实现一个检查函数,该函数标识“InputValidationError”类是否应用于我的任何表单字段。使用JQuery非常简单,但我觉得它不太合适。有人对此有什么意见吗


一方面,它看起来有点像黑客,因为我在表单被验证之后,有效地迭代表单,看看它是否真的有效。另一方面,我不确定如果同一页面上有多个表单,MVC JS将如何识别modelstate,而如果我自己这样做,我可以识别“对于此表单的帖子,我对这些字段感兴趣”。

可能是一个愚蠢的问题,但你是否
?是否启用了ClientValidation,是的。该表单实际上是由一个usercontrol构建的,并且位于一个div中,该div使用jqueryui作为模式表单显示。我不确定这些因素中的哪一个是导致问题的原因,但验证在我拥有的一个更简单的视图上正确工作(防止提交)。不过验证正在运行,因为它正在标记无效的字段。