我们在新增后,如果页面没有转走,手动刷新或重复点击按钮,都可能导致重复插入记录到数据库,特别是在网速很慢时,点了新增后没反映,多数人都会再点一次,或刷新页面,结果就插入了多条相同的记录.
以下代码可以解决以上问题,以前我在写asp时也是这样实现的,基本上转成.net后,还是一样的代码.
首先我们需要在aspx的form中加入一个隐藏表单:
<input type=hidden name=formid value='<%=DateTime.Now %>' />
然后在aspx.cs中的新增按钮的处理代码之前加入以下代码:
protected void btn_Add_Click(object sender, EventArgs e)

...{
//以下代码可以保证新增后右键刷新将不会重复插入记录.
string formid = HttpContext.Current.Request["formid"];
if (formid == null)

...{
Response.Write("提示:表单没有指定formID");
Response.End();
}
else

...{
if (Session["formID"] == null)

...{
Session["formID"] = formid;
}
else

...{
if (Session["formID"].ToString() == formid.ToString())

...{
Response.Write("<font color=red>:" + formid + "此表单已经提交到服务器,请不要重复提交或刷新。</font><a href="javascript:window.location=window.location">返回表单!</a>");
Response.End();
}
else

...{
Session["formID"] = formid;
}
}
}
//----------------以下写新增插入代码
}