您好,我在这篇文章中遇到了同样的问题:
Ajax.BeginForm not hiding loading element when onBegin fails但我还没有找到解决方法。
基本上当我使用带有OnBegin函数的Ajax.BeginForm并且此函数返回false时,仍会显示加载的elementID,它永远不会再隐藏。
这是我正在测试它的代码:
function isValid() {
return false
}
<% using (Ajax.BeginForm("LogIn", "Security", new { ReturnUrl = Request["ReturnUrl"] }
, new AjaxOptions { UpdateTargetId = "resultErrors", OnBegin = "isValid", LoadingElementId = "updatePanel" }))
{ %>
答案 0 :(得分:1)
我不记得确切的解决方案,我很久以前就决定编写自己的简单Html来处理Ajax调用要好得多。
如果您愿意,可以在此处发布您的代码,我可以向您展示如何使用JQuery。
现在,如果您想坚持使用此解决方案,您仍然可以使用JQuery手动隐藏元素:
<% using (Ajax.BeginForm("LogIn", "Security", new { ReturnUrl = Request["ReturnUrl"] }
, new AjaxOptions { UpdateTargetId = "resultErrors", OnBegin = "isValid", LoadingElementId = "updatePanel" }))
{ %>
<script type="text/javascript" language="javascript" src="<%=Url.Content("~/Scripts/jquery-1.4.1.js") %>">//Jquery reference
</script>
<script type="text/javascript" language="javascript">
function isValid() {
if (true) // In case i whant to return true
{
return true;
}
else // I whant to return false
{
$('#updatePanel').hide(); // Manually hide the LoadingElementId
return false;
}
}
</script>