繁体   English   中英

如何禁用浏览器提示以确认ASPX页面中的页面刷新?

[英]How to disable browser prompt to confirm page refresh in an ASPX page?

我有一个aspx页面,显示在Windows应用程序的内部(在WebBrowser控件内部)。 在特定条件下,Windows应用程序在WebBrowser上发出重新加载,这导致显示以下提示:

在此处输入图片说明

现在,此页面仅显示报告,并且此提示完全不合时宜,并且实际上对最终用户有刺激性。 我尝试将aspx表单方法更改为GET而不是POST,因为此提示似乎只出现在具有表单数据的页面上,但这破坏了页面的功能。
我现在不知所措,如何禁止显示此提示?
我可以捕获一个事件来帮助抑制此消息吗?

编辑:有关方案的更多细节:我正在使用的此aspx页面具有选项卡和单选按钮作为服务器端HTML控件。 通过嵌入在页面中的隐藏字段来维护其状态。 一旦设置了隐藏字段的值并提交了aspnet表单,浏览器即会开始检测任何刷新作为重新提交并显示对话框。 我已经解决了这个问题,答案中有细节

此提示可能是PRG模式( http://en.wikipedia.org/wiki/Post/Redirect/Get )的副作用,其目的是避免重复发布数据。

您可能对要发布到的URL进行了重定向。

在浏览器调试器中(如果可能,请使用Firebug以获得最大的详细信息),检查网络请求并查找301/302/303类型的请求。

实际上,您不会赢得更改此功能的机会(我认为也许可以在IE的选项上进行更改,但不能在其他浏览器上进行更改),但是您需要更改制作报告的方式。

而不是在单击按钮并回发后创建报告,而是尝试在url中添加参数,阅读此参数并生成报告。

因此,无需发回邮件,也无需重新加载此消息。

解决问题的方法如下:

如我对问题的编辑中所述,隐藏字段的值更改和随后的表单提交使浏览器(正确地)标记为页面已提交。
现在,我们已将form.submit()更改为类似于以下内容的jQuery $ .post():

$.post(myForm.action, request, function(d) {
                        // Callback function that uses the returned response data d
                        // to extract the html and render the page again after completion
                        // of the Ajax request
                    });

request:JSON对象是否包含维持控件状态的key:value对

注意:在aspx页面的Page_Load()方法中,需要通过从HttpContext的Request对象读取隐藏字段的值来设置它们的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM