当我刷新页面时最后的事件也被“重新加载”,例如试图将相同的数据插入数据库。
我该如何避免这种情况? (使用C#)
答案 0 :(得分:0)
最简单且非常常见的解决方案是在完成数据库插入后将用户重定向到不同的页面(例如“谢谢”页面):
Response.Redirect("ThankYou.aspx");
这样,如果用户重新加载页面,他会重新加载“谢谢”页面,并且不再对服务器执行任何操作。
如果你想坚持使用一个页面,另一种处理问题的常用方法是使用Session变量作为“标志”:
if (Session["inserted_to_db"] == null)
{
//insert to database...
//......
//......
Session["inserted_to_db"] = true;
}
else
{
//already inserted, ignore or throw error
}