对于每个WebForms开发人员来说,这可能都是一个简单的问题,但我知道这个场景。我有一个页面上有一个“ADD”按钮,它会产生一个jquery弹出窗口,用户可以在其中提交一个表单,该表单将在页面上向转发器添加一个条目。我的问题是,在用户添加项目后,如果他们点击刷新按钮,则该项目将再次添加。我无法使用page.ispostback来阻止这一点,因为这会阻止原始添加。我能在这做什么?
答案 0 :(得分:3)
这是一个常见的问题。这是对问题的解释和解决方案。
当通过HTTP POST请求将Web表单提交给服务器时,尝试刷新某些用户代理中的服务器响应的Web用户可能会导致重新提交原始HTTP POST请求的内容,从而可能导致意外结果,例如重复的网络购买。 为避免此问题,许多Web开发人员使用PRG(Post / Redirect / Get)模式。
从wiki(LINK)
复制最简单的解决方案可以是Response.Redirect到同一页面(例如,如果您的页面名为default.aspx
,则写Response.Redirect("default.aspx")
)。如果您这样做,浏览器刷新按钮将只加载页面,就好像您已键入地址栏URL并导航到它。
这里的问题How to stop unwanted postback也可能有用。
答案 1 :(得分:0)
如果有一个选项可以删除页面上的项目(是吗?),你真的要关注这件事吗?可能想要考虑一下。只是一个想法。