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

时间:2012-03-15 07:40:43

标签: javascript asp.net jquery

我有一个aspx页面显示在windows应用程序内部(在WebBrowser控件内)。 在某种情况下,Windows应用程序会在WebBrowser上发出重新加载,这会导致显示以下提示:

enter image description here

现在这个页面只显示一个报告,这个提示完全不合适,实际上对最终用户来说是一种刺激。 我已经尝试将aspx表单方法更改为GET而不是POST,因为此提示似乎仅适用于包含表单数据的页面,但这会破坏页面的功能。
我现在知道如何禁止显示此提示?
是否有可以捕获的事件可以帮助抑制此消息?

编辑:有关该方案的更多细节: 我正在使用的这个aspx页面有标签和单选按钮作为服务器端HTML控件。 它们的状态通过页面中嵌入的隐藏字段来维护。一旦设置了隐藏字段的值并提交了aspnet表单,那就是当浏览器开始检测任何刷新作为重新提交并显示对话时。我已经解决了这个问题,我的回答中有详细信息

3 个答案:

答案 0 :(得分:0)

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

您可能要对要发布的网址进行重定向。

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

答案 1 :(得分:0)

实际上你没有赢得改变这个功能(我想可能会改变选项上的IE,但不会改变其他浏览器),但你需要改变你制作报告的方式。

不是在点击按钮和回发后制作报告,而是尝试在网址中添加参数,阅读此参数并制作报告。

因此不需要回复帖子,并且需要使用此消息重新加载。

答案 2 :(得分:0)

以下是我们解决问题的方法:

正如我在问题编辑中所解释的那样,隐藏字段值和后续表单提交的更改使得浏览器(正确地)标记页面已经提交。
我们现在已经更改了表单.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对象是否包含维护控件状态的键:值对

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