.net中防止刷新页面重复提交数据的几种方法

.net中防止刷新页面重复提交数据的几种方法

1.提交数据后,对页面进行重定向(可以重定向到本页或其他页面)。例子:

Response.Write( " <script   language=javascript> alert( '操作成功 ');window.location.href=window.location.href; </script> ");
2.利用Session,第一次提交数据时把Session设置一个值,如果重复提交的话判断这个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;
}
}
}

转载于:https://www.cnblogs.com/luqingsong/archive/2012/08/08/2627981.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值