首页新闻找找看学习计划

.NET防止重复提交

0
悬赏园豆:60 [已关闭问题] 关闭于 2011-09-14 11:41

MVC3怎么防止重复提交啊,js不用,session 也不用,有没有其他办法?

华伟的主页 华伟 | 初学一级 | 园豆:3
提问于:2011-08-28 23:17
< >
分享
所有回答(12)
0

http状态码 30x 跳转

dotNetDR_ | 园豆:2058 (老鸟四级) | 2011-08-29 00:25
0

最简单的方法。用JS点了按钮后屏蔽按钮。

梦怀天 | 园豆:222 (菜鸟二级) | 2011-08-29 08:39
0

提交后服务器端直接输出跳转,如redirect、RedirectAction

慧☆星 | 园豆:5384 (大侠五级) | 2011-08-29 08:44
0
刘少侠 | 园豆:290 (菜鸟二级) | 2011-08-29 08:50
0

每次页面加载时,生成一个GUID,在action的缓存或数据库里进行比较。

Astar | 园豆:40805 (高人七级) | 2011-08-29 08:51
不清楚你讲的什么哦 有代码吗
支持(0) 反对(0) 华伟 | 园豆:3 (初学一级) | 2011-08-29 12:30
0

点击按钮时,先把button disabled掉,然后再写提交数据的操作,然后等到服务器返回数据,再将button enabled

小彬 | 园豆:947 (小虾三级) | 2011-08-29 12:48
button disabled掉后就不会提交Form表单了。
一般是弹出一个层遮挡掉按钮就行了
支持(0) 反对(0) 喆_喆 | 园豆:200 (初学一级) | 2011-08-31 15:43
0

js不用,session 也不用的话,可以跳转至一个空连接,比如在你跳转的地址后面加一个随机数,相当于多给地址加个参数,这个随机数的范围可以设置的大一点,每跳转一次,跳转的地址看似相同,其实都不同,这样可以防止重复提交

郭文华 | 园豆:252 (菜鸟二级) | 2011-08-29 14:17
0

业务验证,一般重复提交应该是插入或者更新吧。

木子家 | 园豆:433 (菜鸟二级) | 2011-08-29 16:10
0

如果不用JS 不用session,你可以尝试下一个比较麻烦的办法就是你每次提交的时候都在数据库中查询一下看看数据库是否已经有了,还有一个简单的办法就是重写验证方法,代码就几行很简单如果有需要之间联系我,我会给你代码并给你讲清楚。

异样的世界 | 园豆:262 (菜鸟二级) | 2011-08-30 11:07
0

楼上的方法大多无效。

js屏蔽按键依然可以通过F5刷新提交。seesion 判断依然不可靠。因为进程池会自动的回收,所以可以导致依然在某些条件下失效。

唯一可靠的就是去判断数据是否已经插入。

````` | 园豆:14268 (专家六级) | 2011-08-30 13:15
0

我一般用的方法就是调转到另一个页面(最为直接)

等待是一生最初的苍老 | 园豆:6 (初学一级) | 2011-10-14 12:15
0

Post/Redirect/Get模式

xuefly | 园豆:135 (初学一级) | 2011-10-21 11:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册