gpt4 book ai didi

c# - 如何在 .net 中检测页面刷新

转载 作者:可可西里 更新时间:2023-11-01 07:56:31 24 4
gpt4 key购买 nike

我有一个 Button_click 事件。刷新页面时,先前的 Postback 事件再次触发。如何识别页面刷新事件以阻止 Postback 操作?

我尝试了下面的代码来解决它。实际上,我是在 SharePoint 页面中添加可视化 Web 部件。添加 webpart 是一个回发事件,因此每次我将 webpart 添加到页面时 !postback 始终为 false,并且我在 else 循环中遇到错误,因为对象引用为 null

if (!IsPostBack){
ViewState["postids"] = System.Guid.NewGuid().ToString();
Cache["postid"] = ViewState["postids"].ToString();
}
else{
if (ViewState["postids"].ToString() != Cache["postid"].ToString()){
IsPageRefresh = true;
}
Cache["postid"] = System.Guid.NewGuid().ToString();
ViewState["postids"] = Cache["postid"].ToString();
}

我该如何解决这个问题?

最佳答案

使用 View 状态对我来说效果更好,详见 here .基本上:

bool IsPageRefresh = false;

//this section of code checks if the page postback is due to genuine submit by user or by pressing "refresh"
if (!IsPostBack)
{
ViewState["ViewStateId"] = System.Guid.NewGuid().ToString();
Session["SessionId"] = ViewState["ViewStateId"].ToString();
}
else
{
if (ViewState["ViewStateId"].ToString() != Session["SessionId"].ToString())
{
IsPageRefresh = true;
}

Session["SessionId"] = System.Guid.NewGuid().ToString();
ViewState["ViewStateId"] = Session["SessionId"].ToString();
}

关于c# - 如何在 .net 中检测页面刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11793588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com