首页 文章

清除ajax.beginform但是如果服务器端不希望清除表单怎么办?

提问于
浏览
0

我有这样的事情:

我正在使用Ajax.BeginForm,它的updatetargetid是一个div,它基本上告诉用户它是否成功提交和问题,如果有的话 . 处理表单提交的我的控制器函数检查是否存在重复条目等错误,并重新检查客户端规则并相应地返回Content(....) .

这就是我的意思 . 我设置了AjaxOptions OnComplete = "onComplete" .

function onComplete() {
        if ($("#myForm").validate().form()) {
            $("#myForm").clearForm();
        }
    }

2 回答

  • 0

    使用函数onComplete(ajaxContext){}而不是函数onComplete(){}

    从服务器端,如果存在模型验证错误,则通常意味着验证摘要(如果支持)包含一些错误消息 . 使用ajaxContext,您可以读取作为ajax调用的一部分返回的响应,并检查验证摘要元素的值 .

    其他选择是在您的控制器和视图之间设计策略 - 例如指定错误指示符作为响应标头的一部分,并使用它来决定是否在OnComplete处理程序中清除表单 .

  • 0

    那么问题是什么?当服务器端出错时,您根本不会调用onComplete函数 . 但是显示一条错误消息,让用户知道没有任何事情会发生,因为存在服务器端错误 . 这样,表格就不会被清除 . 如果一切都在服务器端工作,那么你才会调用onComplete函数 .

    PK

相关问题