2011-07-25 176 views
0

这可能是每个WebForms开发人员的一个简单问题,但我知道这个场景。我有一个页面上有一个“添加”按钮,导致一个jQuery的弹出窗口,用户可以提交一个表单,将一个条目添加到页面上的中继器。我的问题是,用户添加一个项目后,如果他们然后点击刷新按钮,该项目将再次添加。我无法用page.ispostback来阻止它,因为这会阻止原始添加。我能在这里做什么?Webforms刷新问题

+0

你的意思是在原保存中设置一个bool,然后来回传递并每次检查它? – esastincy

回答

3

这是一个常见问题。以下是问题的解释和解决方案。

当通过HTTP POST请求将Web表单提交给服务器时,尝试刷新某些用户代理中的服务器响应的Web用户可能会导致原始HTTP POST请求的内容被重新提交,可能会导致意外结果,例如重复的网上购物。 为避免此问题,许多Web开发人员使用PRG(Post/Redirect/Get)模式。

从维基(LINK

简单的解决方案复制可以Response.Redirect到同一页(即如果页面命名为default.aspxResponse.Redirect("default.aspx"))。如果你这样做浏览器刷新按钮将只是加载页面,就好像你已经输入地址栏网址并导航到它。

这里是SO问题How to stop unwanted postback也可能有用。

0

如果有一个选项可以删除页面上的某个项目(是否存在?),那么您是否真的需要关注这个问题?可能想考虑一下。只是一个想法。