代码之家  ›  专栏  ›  技术社区  ›  Iain M Norman

防止在浏览器刷新时重新提交webform而不丢失viewstate

  •  4
  • Iain M Norman  · 技术社区  · 16 年前

    重复: How can I prevent database being written to again when the browser does a reload/back?


    如果用户从浏览器请求刷新,是否有一种优雅的方法阻止.aspx页面重新提交表单数据?

    理想情况下不会丢失viewstate。

    编辑:

    3 回复  |  直到 8 年前
        1
  •  4
  •   Philip Reynolds    15 年前

    生成并将唯一标识符插入也存储在服务器上的页面。在提交表单时存储该值,不要让该值多次传递。

    :这是唯一“正确”的方法。当我这么说的时候,我指的是在服务器端存储一些东西。任何基于客户机行为的行为都有潜在的缺陷。这些实现不涉及潜在的浏览器错误、不兼容、禁用javascript、连接超时等。

    服务器端需要知道此特定操作已经执行,并在服务器端停止它。我强调这一点,因为通常需要这样做来阻止客户刷新和发出多个订单(以及可能的多个账单)。这还允许客户端在服务器未实际接收并执行操作时(例如,在超时的情况下)正常刷新。

        2
  •  1
  •   bpapa    16 年前
        3
  •  1
  •   Per Stilling    16 年前