ASP.Net中防止页面刷新重复提交的几种方法(转)
来源:互联网 发布:可以在手机上开淘宝吗 编辑:程序博客网 时间:2024/04/30 22:33
ASP.Net中防止页面刷新重复提交的几种方法
关键字: asp.net 防止页面刷新重复提交
1、也是最简单和最常用的办法,就是使用转向页面语句,分两种:
a.使用服务器端的 Response.Redirect("YourPage");
b.使用客户端脚本 <script language=javascript>location.href='yourPage';</script>
这两种方法的缺点是如果要保留页面数据不太方便,如果不用保留可以采用。
2、操作完毕设置一个Session,进入页面时判断这个Session是否为null,如果不是表示已经提交过了,但是缺点就是这个页面无法再提交了,必须在别的页面清空这个Session。
3、是从网上搜索到的一种方案,学习并共享一下:
DetectRefresh.aspx
===========================
<%@ Page Inherits="StevenBey.Web.UI.Page" %>
<html>
<head>
<title>Detecting Page Refresh [Demo]</title>
</head>
<body>
<form runat="server">
<asp:button Text="Test Refresh" runat="server" />
</form>
IsRefresh = <%= IsRefresh %>
</body>
</html>
StevenBey.Web.UI.Page.cs
======================
namespace StevenBey.Web.UI
{
public class Page : System.Web.UI.Page
{
private bool _refreshState;
private bool _isRefresh;
public bool IsRefresh
{
get
{
return _isRefresh;
}
}
protected override void LoadViewState(object savedState)
{
object[] allStates = (object[]) savedState;
base.LoadViewState(allStates[0]);
_refreshState = (bool) allStates[1];
_isRefresh = _refreshState == (bool) Session["__ISREFRESH"];
}
protected override object SaveViewState()
{
Session["__ISREFRESH"] = _refreshState;
object[] allStates = new object[2];
allStates[0] = base.SaveViewState();
allStates[1] = !_refreshState;
return allStates;
}
}
}
4.
a.使用服务器端的 Response.Redirect("YourPage");
b.使用客户端脚本 <script language=javascript>location.href='yourPage';</script>
这两种方法的缺点是如果要保留页面数据不太方便,如果不用保留可以采用。
2、操作完毕设置一个Session,进入页面时判断这个Session是否为null,如果不是表示已经提交过了,但是缺点就是这个页面无法再提交了,必须在别的页面清空这个Session。
3、是从网上搜索到的一种方案,学习并共享一下:
DetectRefresh.aspx
===========================
<%@ Page Inherits="StevenBey.Web.UI.Page" %>
<html>
<head>
<title>Detecting Page Refresh [Demo]</title>
</head>
<body>
<form runat="server">
<asp:button Text="Test Refresh" runat="server" />
</form>
IsRefresh = <%= IsRefresh %>
</body>
</html>
StevenBey.Web.UI.Page.cs
======================
namespace StevenBey.Web.UI
{
public class Page : System.Web.UI.Page
{
private bool _refreshState;
private bool _isRefresh;
public bool IsRefresh
{
get
{
return _isRefresh;
}
}
protected override void LoadViewState(object savedState)
{
object[] allStates = (object[]) savedState;
base.LoadViewState(allStates[0]);
_refreshState = (bool) allStates[1];
_isRefresh = _refreshState == (bool) Session["__ISREFRESH"];
}
protected override object SaveViewState()
{
Session["__ISREFRESH"] = _refreshState;
object[] allStates = new object[2];
allStates[0] = base.SaveViewState();
allStates[1] = !_refreshState;
return allStates;
}
}
}
4.
- C# code
- protected void Button1_Click(object sender, EventArgs e){ if (ViewState["do"] != null) { Response.Write("你已经提交过了。"); return; } ViewState["do"] = "1";}
5.转向新页面:Response.Write("<script language='javascript'>alert(提交成功!');window.location.href=‘#’;</script>");Response.Write("<script language='javascript'>alert('#');window.location.href='a.aspx?ID="+str+"';</script>");
- ASP.Net中防止页面刷新重复提交的几种方法(转)
- ASP.Net中防止页面刷新重复提交的几种方法
- ASP.Net中防止页面刷新重复提交的几种方法
- ASP.Net中防止页面刷新重复提交的几种方法
- ASP.Net中防止页面刷新重复提交的几种方法
- ASP.Net中防止页面刷新重复提交的几种方法
- ASP.NET中防止刷新页面造成表单重复提交
- ASP.NET中防止刷新页面造成表单重复提交
- ASP.NET中防止刷新页面造成表单重复提交
- 防止页面刷新重复提交的方法
- 防止页面刷新重复提交的方法
- asp.net防止页面刷新或后退引起重复提交
- 防止页面刷新重复提交几招
- Struts中防止重复提交、重复刷新、防止后退的几种解决方案
- Struts中防止重复提交、重复刷新、防止后退的几种解决方案
- Struts中防止重复提交、重复刷新、防止后退的几种解决方案
- Struts中防止重复提交、重复刷新、防止后退的几种解决方案(转贴)
- Struts中防止重复提交、重复刷新、防止后退的几种解决方案
- 达芬奇密码图文教程
- 全文搜索的Action
- 年度收官饕餮盛宴2010 SD2.0大会即将开幕
- js string 转 int 注意的问题
- JavaScript操作CSS样式
- ASP.Net中防止页面刷新重复提交的几种方法(转)
- VirtualBox-3.2.10学习笔记
- linux c 获取系统时间的方法
- 1.5 回文质数
- SVN更新版本后,windows右键菜单消失
- 不刷新上传的实现二 servlet
- asdfdsf
- javascript操作Select大全
- VC实现图片移动(动画效果)