http状态码 30x 跳转
最简单的方法。用JS点了按钮后屏蔽按钮。
提交后服务器端直接输出跳转,如redirect、RedirectAction
每次页面加载时,生成一个GUID,在action的缓存或数据库里进行比较。
点击按钮时,先把button disabled掉,然后再写提交数据的操作,然后等到服务器返回数据,再将button enabled
js不用,session 也不用的话,可以跳转至一个空连接,比如在你跳转的地址后面加一个随机数,相当于多给地址加个参数,这个随机数的范围可以设置的大一点,每跳转一次,跳转的地址看似相同,其实都不同,这样可以防止重复提交
业务验证,一般重复提交应该是插入或者更新吧。
如果不用JS 不用session,你可以尝试下一个比较麻烦的办法就是你每次提交的时候都在数据库中查询一下看看数据库是否已经有了,还有一个简单的办法就是重写验证方法,代码就几行很简单如果有需要之间联系我,我会给你代码并给你讲清楚。
我一般用的方法就是调转到另一个页面(最为直接)
Post/Redirect/Get模式