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

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


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

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

有趣的是,只有在OnBegin函数返回后才显示loading元素。

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

最佳答案

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

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

10-12 12:40