欢迎来到天天文库
浏览记录
ID:14379884
大小:40.50 KB
页数:8页
时间:2018-07-28
《p[1].net中防止页面刷新重复提交的几种方法+》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1、也是最简单和最常用的办法,就是使用转向页面语句,分两种: a.使用服务器端的Response.Redirect(Request.UrlReferrer.ToString()); b.使用客户端脚本location.href='yourPage'; 这两种方法的缺点是如果要保留页面数据不太方便,如果不用保留可以采用。2、操作完毕设置一个Session,进入页面时判断这个Session是否为null,如果不是表示已经提交过了,但是缺点就
2、是这个页面无法再提交了,必须在别的页面清空这个Session。Page_Load中加入 Response.Cache.SetNoStore(); //Session中存储的变量“IsSubmit”是标记是否提交成功的 if(!IsPostBack) if(Session["IsSubmit"]==null) Session.Add("IsSubmit",false); if((bool)Session["IsSubmit"]) { //如果表单数据提交成功,就设“Session["IsSubmit"]
3、”为false Session["IsSubmit"]=false; //显示提交成功信息 TextBox1.Text="*提交成功!"; } else{//否则的话(没有提交,或者是页面刷新),不显示任何信息 TextBox1.Text=""; Response.End(); } 提交按钮中加入 Session["IsSubmit"]=true; Response.Redirect("本页"); 3、是从网上搜索到的一种方案,学习并共享一下:DetectRefresh.aspx ====
4、======================= <%@ Page Inherits="StevenBey.Web.UI.Page" %>
5、<%= IsRefresh %> 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
6、 { get { return _isRefresh; } } protected override void LoadViewState(object savedState) { object[] allStates = (object[]) savedState; base.LoadViewState(allStates[0]); _refreshState = (bool)
7、 allStates[1]; _isRefresh = _refreshState == (bool) Session["__ISREFRESH"]; } protected override object SaveViewState() { Session["__ISREFRESH"] = _refreshState; object[] allStates = new object[2]; allStates[
8、0] = base.SaveViewState(); allStates[1] = !_refreshState; return allStates; } } }在提交事件这么写if(!IsRefresh) {...}Asp.Net防止刷新重复提交数据小记Asp.N
此文档下载收益归作者所有