Red*_*wan 5 asp.net events refresh
我有.aspx页面,该页面在点击按钮时将数据插入数据库.但是,当我按下按钮时,它正确.即将成功消息作为"成功插入数据".在这种情况下,如果我按"F5"或刷新页面,它将触发按钮单击事件.为什么会这样?如何避免这种情况?
Jør*_*ode 10
当用户单击F5(或使用工具栏按钮刷新页面)时,它将导致将与前一个请求相同的新请求发送到服务器.该Button.Click事件将再次引发,但您有几种方法可以保护自己不会两次插入数据.
恕我直言,最好的方法是使用Post/Redirect/Get模式.在您的代码中,在保存数据的位置之后,执行302重定向到确认页面:
protected void btnSaveStuff_Click(object sender, EventArgs e)
{
SaveStuffToDatabase();
Response.Redirect("confirmation.aspx");
}
Run Code Online (Sandbox Code Playgroud)
使用模式时,POST原始页面不会在浏览器历史记录中结束,刷新结果页面将导致最终GET重复,这应该是安全的.
| 归档时间: |
|
| 查看次数: |
30802 次 |
| 最近记录: |