asp.net页面刷新导致重复提交
publicpartialclass _Default : System.Web.UI.Page
{
protectedvoid Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Session["Update"] = Server.UrlEncode(DateTime.Now.ToString());
}
}
protectedvoid Button1_Click(object sender, EventArgs e)
{
if (Session["update"].ToString() == ViewState["update"].ToString())
{
string currentUrl = Request.Url.ToString();
string jsCode ="<script type='text/javascript'>alert('Halo')</script>";
Response.Write(jsCode);
Session["update"] = Server.UrlEncode(DateTime.Now.ToString());
}
}
protectedoverridevoid OnPreRender(EventArgs e)
{
ViewState["update"] = Session["update"];
}
}
{
protectedvoid Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Session["Update"] = Server.UrlEncode(DateTime.Now.ToString());
}
}
protectedvoid Button1_Click(object sender, EventArgs e)
{
if (Session["update"].ToString() == ViewState["update"].ToString())
{
string currentUrl = Request.Url.ToString();
string jsCode ="<script type='text/javascript'>alert('Halo')</script>";
Response.Write(jsCode);
Session["update"] = Server.UrlEncode(DateTime.Now.ToString());
}
}
protectedoverridevoid OnPreRender(EventArgs e)
{
ViewState["update"] = Session["update"];
}
}
昨天做项目,遇到了此问题,弄了半天没解决,就到网上海量搜索还是没有可行的解决方案,郁闷啊。。。。。
今天终于彻底的解决了,这个解决方案只有三行代码就解决了,还是蛮不错的,呵呵............
这个方法的原理就是用Session,与ViewState去记录时间,去做比对,来杜绝在刷新页面时重复执行上一次执行的事件,比较好解决方案。
第一次些博文,Code有不对的地方希望大家指出..................
下雪了,手都僵了,睡了呵呵......