刷新浏览器的数据正在插入 - 帮助!

时间:2010-03-31 17:58:08

标签: c# asp.net

我有插入页面 - 所有验证都正确插入数据。但主要问题是插入后如果有人点击Internet Explorer浏览器上的刷新按钮,数据会再次插入相同的数据,这些数据会在提交按钮上插入

谢谢, Smartdev

4 个答案:

答案 0 :(得分:1)

成功执行插入后执行重定向,这不应该发生。否则,您必须自己执行一些过程以确保它不会发生(可能使用状态管理来设置“已保存”标记或其他内容)。

答案 1 :(得分:0)

重定向可行。你可以使用这样的东西:

protected void Page_Load(object sender, EventArgs e)
{
    if(dataWasInserted)
        Response.Redirect("~/TheSamePage.aspx");
}

答案 2 :(得分:0)

您可以在插入之前向存储过程添加代码以检查数据库。如果您尝试避免的数据已存在,请不要执行插入。

如果您确实希望允许有意重复数据,而不是通过意外刷新,则可以使用时间戳来帮助确定它是否是您要阻止的最近副本。但是,希望您根本不需要数据库中的重复数据,因此我不推荐这种方法。

答案 3 :(得分:0)

亲爱的用户,您必须使用上一页中的以下代码,以避免后退按钮工作。

example...

suppose your page 1 is=x.jsp  and page 2 is y.jsp

to restrict x.jsp when u click on y.jsp back button you have to add this code in x.jsp

<SCRIPT type="text/javascript">
    window.history.forward();
    function noBack() { window.history.forward(); }
</SCRIPT>
</HEAD>
<BODY onload="noBack();"
    onpageshow="if (event.persisted) noBack();" onunload="">