UpdatePanel 是否有任何解决方法?服务器传输问题?
我正在尝试在 ASP.NET 应用程序中使用 UpdatePanel。不幸的是,我似乎无法做到这一点 如果我在应用程序中使用 Server.Transfer()。
修改应用程序的该组件是不可能的 - 该体系结构广泛使用 Server.Transfer() - 本质上,每个页面请求都会通过此方法。此问题是否存在任何解决方法?如今,必须进行整页回发已经不流行了......
I'm trying to use an UpdatePanel in my ASP.NET application. Unfortunately, it seems that I can't do this if I am using Server.Transfer() in my application.
Modifying that component of the application is not possible - the architecture makes extensive use of Server.Transfer() - in essence, every page request goes through this method. Does any workaround exist for this issue exist? Having to do full-page postbacks is so unfashionable these days...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我明白了!感谢Og的奇怪的外国语言博客 :)
要修复此问题,我可以简单地告诉 ASP.NET AJAX 客户端框架将部分请求直接定向到 Server.Transfer() 调用的真实目标。我非常害怕可能的副作用(谁知道这会跳过什么 - 基础设施确实有目的),但到目前为止它似乎运行良好。
这是修复问题的方法,在我的页面的 Load 事件中调用:
I've got it! Thank Og for strange foreign language blogs :)
To fix it, I can simply tell the ASP.NET AJAX client-side framework to direct the partial request directly at the real target of the Server.Transfer() call. I am quite scared of the possible side-effects (who knows what this skips - the infrastructure does have a purpose) but it seems to be working fine so far.
Here is the method that fixes the problem, called in my page's Load event:
这应该以更正确的方式工作:
如果您从控件的事件处理程序调用 Server.Transfer ,只需在更新面板的触发器部分中将该控件注册为 PostBackTrigger :
This should work in a more proper way:
if you call
Server.Transfer
from a control's event handler just register that control as a PostBackTrigger in the Triggers section of the update panel:Response.Write("window.open('新标签页链接','_blank');");
Response.Write("this.window.location='链接到另一个页面';");
Response.Write("window.open('new tab page link','_blank');");
Response.Write("this.window.location='link to another page';");