我有这样的事情:
我正在使用Ajax.BeginForm,它的updatetargetid是一个div,它基本上告诉用户它是否成功提交和问题,如果有的话 . 处理表单提交的我的控制器函数检查是否存在重复条目等错误,并重新检查客户端规则并相应地返回Content(....) .
这就是我的意思 . 我设置了AjaxOptions OnComplete = "onComplete"
.
function onComplete() {
if ($("#myForm").validate().form()) {
$("#myForm").clearForm();
}
}
2 回答
使用函数onComplete(ajaxContext){}而不是函数onComplete(){}
从服务器端,如果存在模型验证错误,则通常意味着验证摘要(如果支持)包含一些错误消息 . 使用ajaxContext,您可以读取作为ajax调用的一部分返回的响应,并检查验证摘要元素的值 .
其他选择是在您的控制器和视图之间设计策略 - 例如指定错误指示符作为响应标头的一部分,并使用它来决定是否在OnComplete处理程序中清除表单 .
那么问题是什么?当服务器端出错时,您根本不会调用onComplete函数 . 但是显示一条错误消息,让用户知道没有任何事情会发生,因为存在服务器端错误 . 这样,表格就不会被清除 . 如果一切都在服务器端工作,那么你才会调用onComplete函数 .
PK