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