我在编程方面比较新,我对回发有疑问。我搜索了一些页面,但我无法解决我的问题。
我创建了一个网页,我在其中使用了回发来更新页面中的一些信息。这没有任何问题。但是,在触发回发后,如果用户按下F5,则会显示一条消息,要求确认重新提交表单。
为什么会出现此消息,我该如何避免? 如果用户按F5,我希望页面重新加载,没有任何警报。
我很抱歉,如果我的问题不够明确,但我真的不明白回复我有多想.. =)
答案 0 :(得分:0)
默认情况下,
方法 帖子表示在重新加载页面时会确认。
方法 获取意味着它不会有任何问题。
为什么会发生这种情况,每当post方法称为严重操作将在服务器中发生时,它只是从用户确认。在get方法的情况下没有必要。
我希望你对这个解决方案很清楚。
答案 1 :(得分:0)
避免问题的一种方法是在页面上放置一个隐藏字段。提交表单后,请检查隐藏字段。如果没有值,则处理表单,并使用值填充隐藏字段。如果它有值,则不执行任何操作。
我更喜欢在按钮上使用点击事件,而不是使用回发事件。
至于为什么会发生这种情况,刷新会将请求和表单数据一起发送回服务器,从而导致另一次回发。
答案 2 :(得分:0)
这称为页面重新提交。
当您刷新浏览器时,它将重新发送您上次提出的请求。如果它是一个POST请求(就像你在回发的情况下那样),那么它会重新发布信息,但在这之前你会看到你描述的警告信息。
为了防止这种情况:
Page.Response.Redirect(Page.Request.Url.ToString(), true);
将更改响应更改为GET而不是POST。阻止“表单重新提交”对话框。
答案 3 :(得分:0)
我想在下面的代码中使用javascript事件来解决我的问题:
$(document).keydown(function (event) {
if (event.keyCode == 116) {
location.href = 'pedidos.aspx';
return false;
}
});
它解决了我的问题,因为我根据需要避免了回发消息,并重新加载了页面。 但这是一个很好的解决方案吗?