C# 两者之间的区别!Asp.Net中的IsPostBack和刷新
我在C# 两者之间的区别!Asp.Net中的IsPostBack和刷新,c#,asp.net,C#,Asp.net,我在中写了一些代码!IsPostBack块。此代码在页面第一次加载时执行。那很好。但问题是,当我点击f5键刷新页面时,它会再次执行,这是我不想做的。我搜索了很多文章,发现了PostBack和refresh之间的区别。我知道这件事。但我的问题是和之间的区别!IsPostBack并刷新。我们可以编写一些代码,只在页面第一次加载时执行,而不是在刷新页面时执行。顺便说一下,我已经写了我的!IsPostBackblock insidePage_Init()。谢谢。refresh和IsPostback有些不
中写了一些代码!IsPostBack
块。此代码在页面第一次加载时执行。那很好。但问题是,当我点击f5键刷新页面时,它会再次执行,这是我不想做的。我搜索了很多文章,发现了PostBack
和refresh之间的区别。我知道这件事。但我的问题是和之间的区别!IsPostBack
并刷新。我们可以编写一些代码,只在页面第一次加载时执行,而不是在刷新页面时执行。顺便说一下,我已经写了我的!IsPostBack
block insidePage_Init()。谢谢。refresh和IsPostback有些不相关:
- 浏览器中的刷新通常意味着“重新运行导致此页面的最后一个操作”。通常它会导致GET请求,但若页面显示为回发的结果,它也会导致POST。旁注:你们经常会发现一些网站警告你们在“向我的信用卡充值”这样的不可逆操作中不要刷新页面,因为这可能会触发重复的帖子
- IsPostBack只是声明请求以POST而不是GET的形式到达服务器李>
结合这一点,您可以得到触发if(IsPostBack)
check的任一分支的刷新。在大多数情况下,so服务器将接收GET请求,并因此执行!IsPostBack
分支
如果您确实需要检测页面是否已经呈现过一次-设置cookie或将信息写入会话将是合理的解决方案。请按照下面给出的方式更改代码隐藏
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();
}
}
如果您在第一次加载后刷新,iPostBack将始终为false!!所以,除非有一个帖子从网站上回复过来,否则别再进来了page@Aristos该代码不适用于Javascript。“它在C#@MAK中运行良好,而不是在al。它将在其他部分出现。”亚里士多德抱歉。我没有get@NCA别担心,算了,我删除了MSG