加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 检测浏览器刷新

发布时间:2020-12-16 06:58:44 所属栏目:asp.Net 来源:网络整理
导读:如何确定用户是否按下了F5以刷新我的页面(如何实现SO.如果刷新页面,问题计数器不会增加).我已经测试了十几个教程中提到的许多代码片段,但都没有正常工作. 更清楚的是,假设我有一个空的Web表单,并想检测用户是否在客户端按下了F5(导致刷新未提交). 我可以使用
如何确定用户是否按下了F5以刷新我的页面(如何实现SO.如果刷新页面,问题计数器不会增加).我已经测试了十几个教程中提到的许多代码片段,但都没有正常工作.

更清楚的是,假设我有一个空的Web表单,并想检测用户是否在客户端按下了F5(导致刷新未提交).

我可以使用会话变量,但如果用户导航到我网站的另一个页面,然后回来,我想将其视为新访问,而不是刷新.所以这不是会话范围变量.

谢谢.

更新:我能找到的唯一解决方法是从基页继承我的页面,覆盖下面的加载方法:

public class PageBase : System.Web.UI.Page
{
    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);
        this.Session["LastViewedPage"] = Request.RawUrl;
    }
}

如果我有兴趣知道这是否刷新,请在每一页中:

if (this.Session["LastViewedPage"].ToString() == Request.RawUrl)
{
    // This is a refresh!
}

解决方法

唯一可靠的解决方案是制作 a redirect to the same page,这是一个类似的问题: Post-Redirect-Get with ASP.NET

但是还有其他一些技巧,通过在页面上添加一些票证并查看它是否相同或有更改,请参阅完整示例和代码:

http://www.codeproject.com/Articles/68371/Detecting-Refresh-or-Postback-in-ASP-NET

还有一个:

http://dotnetslackers.com/community/blogs/simoneb/archive/2007/01/06/Using-an-HttpModule-to-detect-page-refresh.aspx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读