微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

模态对话框和__doPostback无限循环

如何解决模态对话框和__doPostback无限循环

| 我已经使用ModalPopupExtender创建了一个模态对话框。使用Webservices和JQuery模板在其中创建了一个UI。还有一个隐藏的ASP.NET按钮,可使用__doPostback()技术从javascript中调用它。 javascript隐藏了模式弹出窗口,并在按钮(位于ModalPopupExtender内部)上调用了__doPostback。 我使用这种技术来传递一些来自javascript的参数。服务器端事件处理程序进行一些处理并转移到页面(在某些情况下,返回到自身) 当它转移到的页面是另一个页面时,这种方法可以很好地工作,但是如果转移到同一页面,则回发将一遍又一遍,直到堆栈崩溃为止。 当我回发到同一页面时,如何阻止重新发生回发。我猜这不是第一次发生,因为它发布到另一个页面并且回发无效。 代码样本很难提供,因为它是一个相当复杂的系统,很难将其分解。 我知道,这听起来很可怕,我想做的不过是,它使用一些变量从javascript调用服务器端函数。有一个更好的方法吗?     

解决方法

好吧,您正在回发邮件,因此您可以对标记进行服务器端控制。只需将执行重新发布的javascript粘贴在容器中,以防页面将其自身发布,请隐藏该容器,以便它不会加载到页面中。 那或者您可以做客户端cookie或querystring参数。两者都可能很眨眼。     ,没有代码示例,我只能推测并希望为您指明正确的方向。 当您转移到新页面时,旧页面(以及该页面上的javascript)超出范围,因此不会继续执行。但是,如果重新加载页面并且继续调用__doPostback的条件,则您已经创建了导致问题的循环引用。在调用__doPostback之前,但是当您仍然在客户端上时,您需要清除可能导致事件链的任何条件。 如果您无法发现正在调用事件链的内容,则可以考虑与其转移回同一页面,而不是转移到新页面(bounce.aspx),这又会调用response.redirect BACK回到页面,这样不是重新加载时的回发,而是页面的新实例。 (是的,这很麻烦,但这可能是有效的止损...) 干杯, CEC     ,感谢您的答复。我想我已经找到了解决方案。 在服务器端回调中,我正在这样做:
setupPage();
Server.Transfer(\"mypage.aspx\",true);
更改为此:
setupPage();
Server.Transfer(\"mypage.aspx\");
解决问题。 SetupPage()将所有数据存储在隐藏字段中,我认为必须保留表单状态,以便在传输后将其保留。似乎并非如此,因为在转移之前,我在页面中完成的所有设置似乎仍然存在。 奇怪的是,或者我误解了有关.NET的一些基本知识 编辑-是的,我确实对.NET误解了很多。有时使我的头部受伤。 谢谢您的帮助     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。