我有一个aspx页面显示在windows应用程序内部(在WebBrowser控件内)。 在某种情况下,Windows应用程序会在WebBrowser上发出重新加载,这会导致显示以下提示:
现在这个页面只显示一个报告,这个提示完全不合适,实际上对最终用户来说是一种刺激。
我已经尝试将aspx表单方法更改为GET而不是POST,因为此提示似乎仅适用于包含表单数据的页面,但这会破坏页面的功能。
我现在知道如何禁止显示此提示?
是否有可以捕获的事件可以帮助抑制此消息?
编辑:有关该方案的更多细节: 我正在使用的这个aspx页面有标签和单选按钮作为服务器端HTML控件。 它们的状态通过页面中嵌入的隐藏字段来维护。一旦设置了隐藏字段的值并提交了aspnet表单,那就是当浏览器开始检测任何刷新作为重新提交并显示对话时。我已经解决了这个问题,我的回答中有详细信息
答案 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对象中读取它们来设置隐藏字段的值