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