【问题标题】:ASP.NET Double-postbacks - the always-fun questionASP.NET 双回发 - 总是很有趣的问题
【发布时间】:2009-04-14 10:54:30
【问题描述】:

我知道双重回发的一般准则,但这一条让我抓狂。这是一个点击按钮。 C#。 ASP.NET 2.0。当我在生产中单击它时,它间歇性回发两次。无法从分期中复制,至少在我目前尝试过的规模上是这样。

据我所知,在开始执行此操作之前,代码没有改变,并且逻辑流程当然不会要求在随机时间双击点击代码。我开始深入研究网络跟踪(公平地说,有一些重复的确认和丢弃的段)并且想知道我是否应该对 Temporary ASP.NET 文件夹进行核攻击。

还关注这个返回 true 的 jQuery 模态弹出窗口 .click(function() 调用。我的 Javascript 大脑背后的某些东西让我怀疑。

this interesting bug 与空白图像源有关。

【问题讨论】:

  • IE,到目前为止。我最近徘徊的 Javascript 路径,所以我现在开始攻击其他人。接下来是 Chrome。

标签: asp.net postback


【解决方案1】:

我只看到当按钮单击调用手动调用 form.submit() 但未正确取消单击事件的 javascript 时弹出此问题,因此它发布了两次。

我不确定,但我相信如果是这种情况,一个回发将包含 ButtonID=ButtonID 而一个则不会。

【讨论】:

  • 好建议,我会开始更仔细地查看点击代码。
【解决方案2】:

确保您也没有处理其他事件,例如页面加载、页面初始化

【讨论】:

    【解决方案3】:

    并确保您在处理表单标签上的 onsubmit 事件时不会以错误的方式导致双重回发。喜欢:

    function Loading() {
      $('*').css('cursor','wait'); // To change cursor while waiting for postback
      document.forms[0].submit();  // Cause postback (maybe 2nd time if already fired by Button).
    }
    
    <form id="form1" runat="server" onsubmit="Loading();">
    

    【讨论】:

      猜你喜欢
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      • 2010-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-27
      • 1970-01-01
      相关资源
      最近更新 更多