我有带有提交按钮的网页,当用户按 F5 刷新页面提交页面后,它会执行上次请求所做的事情。
我通过在自身后面的 C# 代码中的 submit_click 函数中再次重定向同一页面来省略这一点。
但我觉得当用户点击数增加时会产生一些性能问题。
我也尝试过 Server.Transfer。但它们都不是防止问题的正确解决方案。
有什么解决方案可以解决这个问题吗?
谢谢大家。
我有带有提交按钮的网页,当用户按 F5 刷新页面提交页面后,它会执行上次请求所做的事情。
我通过在自身后面的 C# 代码中的 submit_click 函数中再次重定向同一页面来省略这一点。
但我觉得当用户点击数增加时会产生一些性能问题。
我也尝试过 Server.Transfer。但它们都不是防止问题的正确解决方案。
有什么解决方案可以解决这个问题吗?
谢谢大家。
您可以使用Post/Redirect/Get 模式来最大程度地减少表单重新提交的问题。
但是,这并不完全安全。用户仍有可能通过单击后退按钮并再次重新加载来重新提交表单。不过,浏览器会在重新提交之前进行确认。
您可以尝试为用于提交表单的按钮添加一个值,例如 value="isClicked"。
在处理请求之前,您可以检查该按钮是否具有值。
if (Request.Form["answer-thread"] != null && String.Equals(Request.Form["answer-thread"], "isClicked"))
{
var answerText = Request.Form["answer-text"].ToString();
.... do your form logic.
}
刷新页面时,该按钮将为空。希望这对你有用
最好的问候亨里克