避免在网页刷新时在ASP.net中重新插入数据的最佳方法



我想知道避免在ASP.net中重新插入数据的最佳方法是什么。

我目前正在做

Response.Redirect('PageURL');

提前感谢

不要将插入代码放在Page_Load方法中,否则,请确保先检查Page.IsPostBack

是的,通常我们有一个身份自动递增号码id,该id应在插入后发送回您的表单。所以您只需要在服务器上检查这个数字是否大于0,然后执行update而不是insert

您的重定向解决方案是有效的。此模式称为发布/重定向/获取

Post/Rerect/Get(PRG)是一种web开发设计模式防止一些重复的表单提交,创建更直观的用户代理(用户)的接口。PRG实现书签和以可预测的方式刷新按钮,不会创建重复表格提交。

当通过HTTP POST请求向服务器提交web表单时,尝试刷新服务器响应的web用户用户代理可以导致原始HTTPPOST请求的内容重新提交,可能会导致不希望的结果,例如重复的网络购买。

为了避免这个问题,许多web开发人员使用PRG模式[1]--POST操作不是直接返回网页,而是返回重定向命令。HTTP 1.1规范引入了HTTP303("参见其他")响应代码,以确保在这种情况下web用户的浏览器可以安全地刷新服务器响应,而无需使得重新提交初始HTTP POST请求。然而,大多数今天使用的常见商业应用程序(新的和旧的)仍然在这些情况下,继续发出HTTP 302("已找到")响应。通常避免使用HTTP 301("永久移动"),因为HTTP-1.1兼容的浏览器不会在之后将该方法转换为GET接收HTTP 301,如更常见的HTTP 302。[2]然而,在不希望POST的情况下,HTTP 301可能是优选的要转换为GET参数的参数,并因此记录在日志。

http://en.wikipedia.org/wiki/Post/Redirect/Get

最新更新