我确实创建了一个带有ViewModel的MVC C#应用程序,其所有属性都是[必需]并且还创建了它的应用View,我的问题是我需要从提交按钮捕获click事件以便制作一些验证所以我决定使用jQuery以这种方式捕获click事件:
$("#IngresarInfo").click(function (e) {
e.preventDefault();
$("#idISSSBuscar").rules("remove", "required");
$.ajax({ ... some code here
但如果我使用e.preventDefault();
验证[required]确实有效(没有显示任何错误消息),我想要的是首先验证所有表单输入是否已完成,然后进行验证
答案 0 :(得分:0)
是的,当调用e.PreventDefault()时,默认进程将停止。即,默认情况下不会调用您的服务器端控制器操作。
来自jQuery文档
如果调用此方法,则事件的默认操作不会 触发。
如果您想在调用e.PreventDefault后继续执行控制器操作,则需要自己提交表单。
另一个问题。为什么这样呢?如果您让MVC对viewmodel进行默认验证,则可以在post操作中查找Model.IsValid并返回包含验证错误的原始视图。
看起来你正试图模仿这种确切的行为,但我不知道你从中获得了什么。