Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.Net MVC客户端验证错误-使用一个按钮但不使用另一个按钮_Asp.net Mvc_Asp.net Mvc 3_Validation_Modelstate - Fatal编程技术网

Asp.net mvc ASP.Net MVC客户端验证错误-使用一个按钮但不使用另一个按钮

Asp.net mvc ASP.Net MVC客户端验证错误-使用一个按钮但不使用另一个按钮,asp.net-mvc,asp.net-mvc-3,validation,modelstate,Asp.net Mvc,Asp.net Mvc 3,Validation,Modelstate,我有一页有两个提交按钮;SaveAndContinue和SaveAndExit。除了CSS类和控制器操作外,它们完全相同 第一个选项SaveAndContinue将正确验证客户端,如果ModelState.IsValid为false,它将不会发布到控制器。而第二个将完全跳过客户端验证,并使用ModelState.IsValid为false发布到控制器 我使用的是标准数据注释验证,没有什么特别的。没有花哨的jQuery/AJAX函数 有谁能给我一些建议,为什么一个可行,另一个不行 我使用的是MVC

我有一页有两个提交按钮;SaveAndContinue和SaveAndExit。除了CSS类和控制器操作外,它们完全相同

第一个选项SaveAndContinue将正确验证客户端,如果ModelState.IsValid为false,它将不会发布到控制器。而第二个将完全跳过客户端验证,并使用ModelState.IsValid为false发布到控制器

我使用的是标准数据注释验证,没有什么特别的。没有花哨的jQuery/AJAX函数

有谁能给我一些建议,为什么一个可行,另一个不行

我使用的是MVC3,jQuery.validate,jQuery.validate.unobtrusive


提前感谢。

提交按钮是否包含在不同的表单中?如果提交按钮的格式不包含未通过验证的输入,则提交仍将进行,不会出现客户端错误。

答案已经找到(感谢Osh),并且它在我面前怒目而视

第二个按钮使用的
CSS
类中有一个是
'cancel'
类,它本身并没有什么作用

但是,
jquery.validate vsdoc.js
中的validate函数专门检查
'submitHandler'
是否是类为
'.cancel'
的按钮,如果是,则设置validator.cancelSubmit=true

this.find("input, button").filter(".cancel").click(function () {

validator.cancelSubmit = true;

});

希望这对其他人有帮助。:-)

这两个按钮都是submit类型的吗?到底是什么不起作用?您希望发生什么?是的,两个按钮都是submit,除了CSS类和控制器操作外,它们完全相同。第二个按钮在点击控制器之前没有在客户端进行验证,而第一个按钮是。我想要的是他们两人的行为相同,或者至少理解他们为什么不这样做。这是一条有趣的信息,杰森,谢谢。但是,我可以确认它们都在相同的表单上。我仍然可以在控制器中以通常的
ModelState.IsValid
方式捕获验证,因此我有一个解决方法。我只是想了解为什么这第二个按钮不会在客户端发生。例如,是否有一些按钮的自动接线触发客户端上第一个按钮的验证,需要为第二个按钮显式设置?