Kam*_*yar 5 asp.net webforms refresh asp.net-4.0
如何确定用户是否按下了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;
}
}
Run Code Online (Sandbox Code Playgroud)
如果我有兴趣知道这是否刷新,请在每一页中:
if (this.Session["LastViewedPage"].ToString() == Request.RawUrl)
{
// This is a refresh!
}
Run Code Online (Sandbox Code Playgroud)
唯一确定的解决方案是重定向到同一页面,这里有一个类似的问题:Post-Redirect-Get with ASP.NET
但还有一些其他技巧,通过在页面上添加一些票证并查看是否相同或有更改,请参阅完整的示例和代码:
http://www.codeproject.com/Articles/68371/Detecting-Refresh-or-Postback-in-ASP-NET
还有一个: