我在做一个订单,在填写完订单相关信息后,
点击确认生成订单。怎样防止别人按后退
再确定,使得又生成一张定单?

解决方案 »

  1.   

    保存一个session 判断是否提交过订单
      

  2.   

    确认生成订单,redirect到另一页.
      

  3.   

    sorry.上面偶说的方法不可行。可这样:
    不缓存.
    <html> <head> <meta http-equiv="Expires" CONTENT="0"> <meta http-equiv="Cache-Control" CONTENT="no-cache"> <meta http-equiv="Pragma" CONTENT="no-cache"> </head> 
      

  4.   

    page有个属性可以判断用户是否是返回状态
    if(!Page.???)<--忘记了,你可以查一下
    {}
      

  5.   

    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e); Response.Cache.SetCacheability(HttpCacheability.NoCache); //忽略缓存

    }
      

  6.   

    如果用户回退
    就和刷新一样,会在执行原来那个页的 GET 请求
      

  7.   

    楼上的什么意思,还是不太明白啊,
    page有个属性可以判断用户是否是返回状态
    是什么属性啊,没找到?
      

  8.   

    让用户不能点后退!
    把IE的Toolbar去掉,屏蔽鼠标右键.
      

  9.   

    你的默认 不要 全部不可为空的控件都写啊,而且没次默认的不要一样啊.刘一个空的不行吗.留一个空的必须手添的比较好控制
    如果默认全部控件都有数据直接可以提交 那就不好控制了明白不.
    除非默认数据不可提交其实如果有条件可以在数据库
    设计一个不可重复的字段
    如果下次一样就报错了
    你捕捉异常就行了.如果重复了
    捕捉异常就行Response.Cache.SetCacheability(HttpCacheability.NoCache); //忽略缓存
    回退的时候还回执行回退的那个页就和 刷新一样
      

  10.   

    不好意思!
    1.打开WebForm1.aspx去掉Toolbar
    string str="window.open('WebForm1.aspx','_blank','width=500,height=400,toolbar=false')";
    Response.Write("<script>"+str+"</script>");
    还有其他参数,需要的话可以在CSDN里搜一下
    2.屏蔽右键
    <body MS_POSITIONING="GridLayout" oncontextmenu="window.event.returnValue=false">