标题应该基本说明白乐:)
To 楼上
是没用的
你有一种办法处理回退,那就是设置页面缓存的时间,让IE回退的时候可以去重新请求,而不是取缓存中的内容
人为刷新造成重复提交是不能避免的,有是有一些土办法,但是限制太多,非常依赖浏览器,版本不同可能效果就达不到了,所以还是告诉你正确的做法:
如果你的数据是不能重复提交的,那么你可以捕获异常,如果不是,那么应该在客户端想办法,提交之后立刻重定向到别的地方
你可以试试下面的方法:
每个页面都添加一个校验,用来检测数据的合法性,页面间的参数都用统一的格式传递,那么当页面回退,并且用户有触发页面控件的状态是在page_load中会先进行校验,此时的页面应该是没有参数的,可以进行自动转向。但是这样会比较麻烦。
关于刷新的问题:
你可以在提交完数据后自动跳出有数据的页面。没有好的方法。
----其实页面就是一个连续添加的过程,也没有意义指向别的地方
en,你可以重定向到一个页面,显示成功信息,并给一个继续添加的链接
1、缓存的问题:
在Page_Init中添加:
Response.Cache.SetNoStore();
2、给你一个IE6可以用的方法:
在更新的代码处:
if( Request.ServerVariables["Accept"]!="*/*" )
{
//更新
Response.Redirect( Request.Url );//重定向
}
else
//用户在刷新页面
另外,更新成功后请重定向一次本页面,否则以后再提交页面不会执行正确的代码
不要依赖客户端,在SERVER 判断是否重复提交!
回答对问题无罪,回答错有错吗?偶看不惯
我补充一下。
1、使用自己开发的浏览器,类似一些公司访问自己服务器来设置
该问题是限制IP,局限性很强。
2、使用js来打开一个窗口,没有后退等选择。锁定右键功能
该问题的局限性是人为可以看到代码,重新进行操作。
3。每次提交后,重新指回该页面,使用设置标志等方式来判断是否已经提交。。