我在!IsPostBack
块中编写了一些代码。第一次加载页面时,将执行此代码。那样就好。但问题是,当我通过点击 f5 键刷新页面时,这会再次执行,我不想这样做。我搜索了很多文章,发现PostBack
和刷新之间存在差异。我知道这件事。但我的问题是!IsPostBack
和刷新之间的区别。我们可以编写一些代码,这些代码仅在第一次加载页面时执行,而不是在刷新页面时执行。顺便说一句,我在!IsPostBack
方法中编写了Page_Init()
块,我使用c#代码隐藏。感谢。
答案 0 :(得分:10)
Refersh和IsPostback有点不相关:
结合你可以得到刷新触发if (IsPostBack)
分支的!IsPostBack
检查。在大多数情况下,服务器将接收GET请求,因此执行Session
分支。
如果您确实需要检测页面是否已经呈现过一次 - 设置cookie或将信息写入{{1}}将是合理的解决方案。
答案 1 :(得分:-1)
请更改代码,如下所示。
Boolean IsPageRefresh;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["postids"] = System.Guid.NewGuid().ToString();
Session["postid"] = ViewState["postids"].ToString();
}
else
{
if (ViewState["postids"].ToString() != Session["postid"].ToString())
{
IsPageRefresh = true;
}
Session["postid"] = System.Guid.NewGuid().ToString();
ViewState["postids"] = Session["postid"].ToString();
}
}