Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 两者之间的区别!Asp.Net中的IsPostBack和刷新_C#_Asp.net - Fatal编程技术网

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 inside
Page_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