• 2010-01-27

    关于页面 后退、刷新 重复提交的问题 - [Web 设计及编程]

      protected void Page_Load(object sender, EventArgs e)
        {
            CheckSubmit.CheckPageSubmit(Page);       
        }
        protected void btnSubmit_Click(object sender, EventArgs e)

        {
            if(submit sucessfull) 

            {
                  CheckSubmit.SubmitRedirect(Page, "StaffReg.aspx"); 
            }
        }

     

    CheckSubmit.cs:

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;

    /// <summary>
    /// CheckSubmit 的摘要说明
    /// </summary>

    public class CheckSubmit
    {
        public CheckSubmit()
        {
            //
            // TODO: 在此处添加构造函数逻辑
            //

        }
        public static void CheckPageSubmit(Page page)
        {
            //不缓存
            page.Response.Cache.SetNoStore();
            //Session中存储的变量“IsSubmit”是标记是否提交成功的
            if (page.Session["IsSubmit"] == null)
            {
                page.Session.Add("IsSubmit", false);
            }

            if ((bool)page.Session["IsSubmit"])
            {
                //如果表单数据提交成功,就设“Session["IsSubmit"]”为false

                page.Session["IsSubmit"] = false;
                MessageBox.Show(page, "提交成功!");
            }
        }
        public static void SubmitRedirect(Page page, string Url)
        {
            page.Session["IsSubmit"] = true;
            page.Response.Redirect(Url);
        }
    }


    //pageload   里   CheckSubmit.CheckPageSubmit(Page);
    //提交事件   里   CheckSubmit.SubmitRedirect(Page, "pageurl.aspx");

    或点击下载:CheckSubmit.cs