C# asp.net:如何防止用户多次发布相同的数据

C# asp.net:如何防止用户多次发布相同的数据,c#,javascript,asp.net,post,submit,C#,Javascript,Asp.net,Post,Submit,我有一个小小的asp.net web应用程序 它是sql-server-2008数据库的前端 填写完所有数据后,他们将按submit,数据将发送到数据库 在此之后,如果用户刷新页面,数据将再次发布!!!如何禁用此情况?将位置标头发送回将浏览器重定向到另一页的用户:刷新将重新加载该另一页,而不是重新提交旧表单。将位置标头发送回将浏览器重定向到另一页的用户:刷新将重新加载该另一页,而不是重新提交旧表单重新提交旧表单。您需要遵循Femi上解释和暗示的Post/Redirect/Get模式。完成处理后,

我有一个小小的asp.net web应用程序

它是sql-server-2008数据库的前端

填写完所有数据后,他们将按submit,数据将发送到数据库


在此之后,如果用户刷新页面,数据将再次发布!!!如何禁用此情况?

将位置标头发送回将浏览器重定向到另一页的用户:刷新将重新加载该另一页,而不是重新提交旧表单。

将位置标头发送回将浏览器重定向到另一页的用户:刷新将重新加载该另一页,而不是重新提交旧表单重新提交旧表单。

您需要遵循Femi上解释和暗示的Post/Redirect/Get模式。完成处理后,在代码中执行
响应。将
重定向到所需页面。

您需要遵循Femi上解释和提及的Post/Redirect/Get模式。完成处理后,在代码中执行
响应。将
重定向到所需页面。

这是因为最后一个请求是对页面的POST请求,您需要做的是重定向,以便最后一个请求成为GET

处理完post数据后,只需使用以下命令重定向到同一页面:

Response.Redirect("~/ThePage.aspx");
这将阻止您直接从代码隐藏向用户显示消息,如果您想使用此方法显示成功消息,则需要添加查询字符串或类似内容:

Response.Redirect("~/ThePage.aspx?result=success");
然后在页面绑定上检查是否设置了显示成功消息的查询字符串,这样的检查可能如下所示:

if (Request.QueryString["result"] != null && Request.QueryString["result"].ToString().ToLower() == "success")
{
    //Show success message
}
另一种可能更优越但可能需要更多工作的解决方案是将表单包装在updatepanel中,您可以在此处阅读更多相关内容:


updatepanel将使用AJAX提交表单,而不是完全回发。

这是因为最后一个请求是对页面的POST请求,您需要做的是重定向,以便最后一个请求成为GET

处理完post数据后,只需使用以下命令重定向到同一页面:

Response.Redirect("~/ThePage.aspx");
这将阻止您直接从代码隐藏向用户显示消息,如果您想使用此方法显示成功消息,则需要添加查询字符串或类似内容:

Response.Redirect("~/ThePage.aspx?result=success");
然后在页面绑定上检查是否设置了显示成功消息的查询字符串,这样的检查可能如下所示:

if (Request.QueryString["result"] != null && Request.QueryString["result"].ToString().ToLower() == "success")
{
    //Show success message
}
另一种可能更优越但可能需要更多工作的解决方案是将表单包装在updatepanel中,您可以在此处阅读更多相关内容:


updatepanel将使表单使用AJAX提交,而不是完全回发。

请参阅这篇关于PRG模式的文章:


简而言之,在用户将数据发布(提交)到服务器后,您将发出响应。重定向以使用户浏览器获取页面。这样,如果用户按下重新加载按钮,则会重复GET请求。

请参阅这篇关于PRG模式的文章:


简而言之,在用户将数据发布(提交)到服务器后,您将发出响应。重定向以使用户浏览器获取页面。这样,如果用户按下重新加载按钮,则会重复GET请求。

第一部分工作正常!!!!您能告诉我如何检查页面绑定是否“成功”吗?添加检查后,您必须自己决定如何显示消息。:)非常感谢。它工作!!!问题是,当我重新加载页面时,它每次都会显示成功的消息,有没有办法让它只显示一次?你可以在会话中添加某种通知系统,但我认为这对于这个问题有点不合时宜。第一部分很好用!!!!您能告诉我如何检查页面绑定是否“成功”吗?添加检查后,您必须自己决定如何显示消息。:)非常感谢。它工作!!!问题是,当我重新加载页面时,它每次都会显示成功消息,有没有办法让它只显示一次?你可以在会话中添加某种通知系统,但我认为这对于这个问题来说有点过分。