<%@ Page language="c#" AutoEventWireup="true"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML> <HEAD> <title>Check F5 refresh submit post back repeatly</title> <meta name="generator" content="editplus" /> <meta name="author" content="" /> <meta name="keywords" content="" /> <meta name="description" content="" /> <script language="C#" runat="server"> private bool _IsF5RefreshPostBack; protected void Page_Load(object sender, EventArgs ea) { if (IsPostBack) { if (Request.Cookies["cookieTimeStamp"] != null) { //if (Request.Cookies["cookieTimeStamp"].Value != this.label1.Text) //不用ViewState 使用 HiddenField 也可 if (Request.Cookies["cookieTimeStamp"].Value != (string) ViewState["vsTimeStamp"]) { _IsF5RefreshPostBack = true; } } } string timeStamp = DateTime.Now.ToString(); //this.label1.Text = timeStamp; ViewState["vsTimeStamp"] = timeStamp; HttpCookie cookie = new HttpCookie("cookieTimeStamp", timeStamp); Response.Cookies.Add(cookie); if (_IsF5RefreshPostBack) { Response.Write("IsRefreshPostBack(F5) in Page Load<br>" ); } } void button1_Click (object sender, EventArgs ea) { if (_IsF5RefreshPostBack) { Response.Write("IsRefreshPostBack(F5) in Button Click<br>" ); } } </script> </HEAD> <body> <form id="Form1" method="post" runat="server"> <asp:Button ID="button1" Text="button1" onclick="button1_Click" runat="server" /> </form> </body> </HTML>