javascript - 当 onBegin 失败时,Ajax.BeginForm 不隐藏加载元素

标签 javascript asp.net-mvc asp.net-ajax

我在我的 MVC 应用程序中使用 Ajax.BeginForm 助手。这是一个简化的示例:

    <% using (Ajax.BeginForm("actionName", new { Controller = "controller" }, new AjaxOptions
           {
               OnBegin = "doValidation",
               LoadingElementId = "ajaxLoader"
           }))
       { %>

问题是,如果 OnBegin 回调返回 false,这会正确地阻止进行 ajax 调用,加载元素“ajaxLoader”仍然显示,而不是隐藏。

我尝试过使用 OnFailure 和 OnComplete 回调,但如果 OnBegin 回调失败,则不会调用这两个回调。

有趣的是,直到 OnBegin 函数返回 后,加载元素才会显示。

我可以通过在自定义 javascript 函数中显式显示和隐藏 ajax 加载元素来解决这个问题,但这似乎是助手真正应该为我处理的事情。

最佳答案

我会尝试运行一个 if 函数,以便仅在回调返回 true 时才显示 ajaxLoader。

关于javascript - 当 onBegin 失败时,Ajax.BeginForm 不隐藏加载元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1164251/

相关文章:

json - 似乎未调用ASP.NET Javascript Converter

asp.net - 当页面加载是 AJAX 历史记录点的结果时,如何检测客户端?

javascript - 如何在表单提交后保持模态窗口打开并在同一模态窗口中显示新页面

javascript - 通过javascript自动向页面上的每个DIV添加类(连续编号)?

javascript - closest() 没有选择元素

c# - MVC HttpGet 和 HttpPost

javascript - 如何在 php 脚本中处理通过 ajax 请求发送的 json 数据?

asp.net-mvc - 将集合传递给 EditorFor() 时,它会为输入元素生成无效名称

asp.net-mvc - 无法到达 Visual Studio 调试 "This site can'”

asp.net-ajax - 使用 Asp.net ajax 进行就地编辑