[英]Prevent page re-submission after refresh asp.net
我有一个启用Ajax
asp表单,用户可以在该表单上提交数据。
效果很好,但是当他/她按f5或刷新页面时,将重新提交表单。 这是一个常见的问题,并且也是重复的。
我已经在不同的论坛上阅读了很多关于此问题的问题,并实施了一些问题,但问题仍然存在。
我无法按照客户要求进行页面重定向。 我从这个问题中得到了参考。 它在本地计算机上运行良好,但是当我部署页面时甚至没有提交过一次。 我也做了一些努力,如下所示。
HiddenField hf = new HiddenField();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
createToken(); //to check page is refreshed
}
}
public void createToken()
{
string token = System.Guid.NewGuid().ToString();
Session["token"] = token;
hf.Value = token;
}
private bool TokenIsValid()
{
string expectedToken = (string)Session["token"];
if (expectedToken == null)
return false;
string actualToken = hf.Value;
return expectedToken == actualToken;
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
try
{
if (TokenIsValid()) // check that page is not refreshed by browser.
{
//insert logic
}}
catch (Exception ex)
{
}
有一个Dropdownlist
会导致自动回发的大问题,并且无法禁用自动回发,因此隐藏字段的值会被清除。 我不知道如何防止重新提交。
我通过在会话中传递成功消息来解决它,将该消息写在page_load上,并且如果该页面是新会话,则将该会话无效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.