如何停止在页面刷新时重新启动事件

时间:2010-06-15 09:41:53

标签: c#

我有表单数据,当用户单击提交按钮时,我将其插入到数据库中。问题是,在原始提交之后,如果用户刷新页面,则将重新提交表单数据,从而第二次插入数据库。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

尝试询问(在事件处理函数中)发件人。

答案 1 :(得分:0)

在处理您的请求后,从服务器端提交按钮事件提供Response.Redirect(“yourpage”)

答案 2 :(得分:0)

使用适当的机制来检测双重发布。 我更喜欢使用以下内容来检测基础请求是否被加倍发布。

private bool refreshState;
private bool isDoublePosted;

protected bool IsInDoublePosting
{
    get 
    {
        return isDoublePosted;
    }
}

protected override void LoadViewState(object savedState)
{
    object[] states = (object[])savedState;
    base.LoadViewState(states[0]);
    refreshState = Convert.ToBoolean(states[1]);
    isDoublePosted = (refreshState == Convert.ToBoolean(Session["IsInDoublePosting"]));
}

protected override object SaveViewState()
{
    Session["IsInDoublePosting"] = refreshState;
    object[] states = new object[3];
    states[0] = base.SaveViewState();
    states[1] = !refreshState;
    return states;
}

在按钮单击事件处理程序中:

    if (!this.IsInDoublePosting)
    { 
        // your code goes here
    }