怎样避免提交表单后,刷新页面造成的重复提交
还是以前我问过的问题,这个到底该怎样解决?
比如我一个定义一个全局变量
static int num = 0;
使用服务器控件按钮,在单击事件里面
num++;
单击后,num值为1,F5刷新后num值为2了。
我只想要那种普通的刷新而已,这样的情况怎样避免?
难道不用服务器控件按钮,用ajax异步提交么?
------解决方案--------------------ajax可以,还有你加个hidden控件,提交前给hidden先赋值1
在page_load里判断hidden是否有值,有值则是提交的,没值就是刷新的
------解决方案--------------------提交后执行
this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "dd",
"<script>alert('编辑成功!');location.href='About.aspx?action=edit&id=" + Request.QueryString["id"] + "';</script>");
------解决方案--------------------用jquery ajax提交
------解决方案--------------------1.ajax
2.session
3.跳转
------解决方案--------------------或者数据库验证
------解决方案--------------------F5刷新重复提交上一次的表单,这是个常见的问题。可以用hidden和session做一个同步标识,初始化hidden和session中的标识相同,在页面回传时只需要判断这2个标识是否相同,如果相同则正常执行,同时刷新hidden和session中的标识值;如果2个标识中的值不相等,说明hidden的值是上一次的表单内容,属于刷新行为
------解决方案--------------------加个时间戳,应该是为了避免F5刷新的问题吧。
------解决方案--------------------记得HttpRequet["Accept"]的值好像是有区别的,可以用来做判断。
------解决方案--------------------禁止刷新页面行吗?
------解决方案--------------------!Page.IspostBack
------解决方案--------------------jquery.form.js LZ网上查查这个,能够是页面无刷新提交。。。
------解决方案--------------------
这个方法或者1楼的方法,1楼的方法在提交时候判断下隐藏域的值