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

时间:2014-02-20 11:29:44

标签: c# asp.net

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

我正在做

Response.Redirect('PageURL');

先谢谢

3 个答案:

答案 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参数的参数,因此记录在中   日志。

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