提供“添加至购物车”按钮的页面的每次输出(初次Load、回发后输出)时都生成一个不会重复的键值(比如Guid),将它写在一个隐藏的input添加到页面的输出内容里每次接收“添加至购物车”按钮的回发事件时,从这个隐藏的input中取出键值,把它写到orderlist中的元素某个字段里,如果在已有元素中的这个字段内发现了相同的值,就认为是客户端使用刷新提交的

解决方案 »

  1.   

    用ViewState代替这个隐藏的input也行道理一样
      

  2.   

    是的,应该为用户选择的每一件物品记录一个可靠的流水序号:<asp:HiddenField runat=Server id="ProdNum"></asp:HiddenField>代码中页面输出时写:ProdNum.Value=(购物车中的物品的数量+1).ToString();在“增加购物车”事件中使用 ProdNum.Value作为此物品的流水号。
      

  3.   

    楼上的我也是用session的.能讲下有什么不好的吗.给个好点的方案出来学习
      

  4.   

    引用楼上的话:楼上的我也是用session的.能讲下有什么不好的吗.给个好点的方案出来学习
      

  5.   

    Session没什么问题,只是注意Session中的orderlist只能作为订单的临时版本,需要持久化应该写入数据库