我想知道什么是避免在ASP.net中重新插入数据的最佳方法。
我正在做
Response.Redirect('PageURL');
先谢谢
答案 0 :(得分:2)
请勿将插入代码放在Page_Load
方法中,或者如果是,请确保先检查Page.IsPostBack
。
答案 1 :(得分:0)
是的,通常我们有一个身份自动增量号码ID,应该在插入后发送回您的表单。因此,您只需检查服务器上的数字是否为> 0并执行update
而不是insert
。
答案 2 :(得分:0)
您的重定向解决方案有效。此模式称为发布/重定向/获取。
Post / Redirect / Get(PRG)是一种Web开发设计模式 防止一些重复的表单提交,创建更直观 用户代理(用户)的界面。 PRG实现了书签和 以可预测的方式刷新按钮,不会创建重复 表格提交。
当通过HTTP POST请求将Web表单提交给服务器时, 尝试在某些情况下刷新服务器响应的Web用户 用户代理可以导致原始HTTP POST请求的内容 要重新提交,可能会导致意外结果,例如a 重复网购。
为避免此问题,许多Web开发人员使用PRG模式[1] - 而不是直接返回网页,POST操作返回一个 重定向命令。 HTTP 1.1规范引入了HTTP 303(“见其他”)响应代码,以确保在这种情况下, Web用户的浏览器可以安全地刷新服务器响应而无需 导致重新提交初始HTTP POST请求。但大多数 当今使用的常见商业应用程序(新旧相似)仍然存在 在这些情况下继续发出HTTP 302(“Found”)响应。 通常避免使用HTTP 301(“永久移动”),因为 符合HTTP-1.1标准的浏览器之后不会将方法转换为GET 接收HTTP 301,这通常用于HTTP 302. [2]然而, 在不希望POST的情况下,HTTP 301可能是优选的 要转换为GET参数的参数,因此记录在中 日志。