我有一个小的asp.net web应用程序。
它是sql-server-2008数据库的前端。
在他们填写完所有数据后,他们将按submit,数据将被发送到数据库。
在此之后,如果用户刷新页面,数据将再次发布!如何禁止这种情况发生?
发布于 2011-09-23 06:49:55
这是因为最后一个请求是对页面的POST请求,您需要做的是重定向,这样最后一个请求就变成了GET。
在处理完post数据之后,您只需使用以下命令重定向到同一页面:
Response.Redirect("~/ThePage.aspx");这将阻止您直接从代码后台向用户显示消息,如果您希望使用此方法显示成功消息,则需要添加一个querystring或类似的内容:
Response.Redirect("~/ThePage.aspx?result=success");然后检查页面绑定是否设置了用于显示成功消息的querystring,这样的检查可能如下所示:
if (Request.QueryString["result"] != null && Request.QueryString["result"].ToString().ToLower() == "success")
{
//Show success message
}另一个可能更好但可能需要更多工作的解决方案是将表单包装在更新面板中,您可以在此处阅读更多信息:http://ajax.net-tutorials.com/controls/updatepanel-control/
updatepanel会让表单使用AJAX提交,而不是完全回发。
发布于 2011-09-23 06:42:40
将Location标头发送回用户,将浏览器重定向到另一个页面:刷新将重新加载该另一个页面,而不是重新提交旧表单。
发布于 2011-09-23 06:47:13
你需要遵循Post/Redirect/Get模式,这在WikiPedia上有解释,Femi也提到过。在完成处理之后,在代码中执行到所需页面的Response.Redirect。
https://stackoverflow.com/questions/7522300
复制相似问题