首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >asp.net 1.1重复提交条目

asp.net 1.1重复提交条目
EN

Stack Overflow用户
提问于 2012-05-15 17:40:00
回答 1查看 127关注 0票数 0

我有一个旧的Framework1.1项目,有以下问题:如果用户提交一个页面,那么在数据库中可能会出现重复的记录。此错误经常重复,但并不一致:在大多数情况下,没有重复的条目,但在某些情况下,可能有多达4个重复条目。在第一次提交后,我们使用JavaScript禁用提交按钮。

这可能会有帮助:有一个用于存储用户输入(已提交)的会话对象。

你能想到为什么会发生重复记录的场景吗?

非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-30 16:51:04

最后,我发现一些手机浏览器忽略了禁用提交按钮的JavaScript,用户设法多次重新提交表单。

最简单的(?)对此的解决方案如下:

在数据库中创建一个包含两个字段的SubmissionTokens表: Token (唯一标识符),DateCreated (DateTime)。然后,当带有提交表单的页面加载时,将一个令牌添加到数据库中,并将"id“值保存在同一页面的隐藏字段中。当用户提交表单时,然后从隐藏字段读取令牌,并查看表SubmissionTokens中是否存在令牌。如果确实存在,则在数据库中插入一个包含表单数据的新记录,并从SubmissionTokens中删除该令牌。您还可以使用DateCreate字段使令牌过期。

在工作中,我实现了一个有点不同的解决方案,在插入新记录之前只在数据库中查找重复的记录。但这是因为有一个特定的要求,用户必须能够重新提交表单,如果他点击“后退”在浏览器中。在这种情况下,SubmissionToken已经被删除,第一个解决方案将不起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10598032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档