C# 防止在没有page.redirect的情况下重新发送表单
也许你们中的一些人知道这个问题,如果按F5刷新浏览器,表单会被重新提交。 我正在寻找一种方法来防止这种情况,我所找到的解决方案是在提交后在同一页面上进行重定向C# 防止在没有page.redirect的情况下重新发送表单,c#,asp.net,.net,webforms,C#,Asp.net,.net,Webforms,也许你们中的一些人知道这个问题,如果按F5刷新浏览器,表单会被重新提交。 我正在寻找一种方法来防止这种情况,我所找到的解决方案是在提交后在同一页面上进行重定向 Response.Redirect(Request.RawUrl); 这确实有效,但我的问题是,回发后我需要将javascript注入占位符中,因此由于重定向,这些信息会丢失 PlaceHolder p1 = this.NamingContainer.Parent.FindControl("phPostScript") as Place
Response.Redirect(Request.RawUrl);
这确实有效,但我的问题是,回发后我需要将javascript注入占位符中,因此由于重定向,这些信息会丢失
PlaceHolder p1 = this.NamingContainer.Parent.FindControl("phPostScript") as PlaceHolder;
GenerateJsTag(script,p1);
Response.Redirect(Request.RawUrl);
有没有一种方法可以防止在不重定向的情况下重新提交
谢谢
有没有一种方法可以防止在不重定向的情况下重新提交
即使有,您也应该坚持在提交后重定向的方法
关于返回后的JS,我相信即使在重定向后刷新后,您也希望看到这些JS输出
您可以做的是重定向到Request.RawUrl+“#someValue”
,然后在页面加载(不在IsPostBack
)中,您可以再次注入这些脚本,知道您已经通过hashkey向用户显示了这些脚本(也可以是cookie,也可以是查询字符串,其实并不重要),或者显示类似这样的消息(“消息已经被接受了”…)或者类似的东西
有没有一种方法可以防止在不重定向的情况下重新提交
即使有,您也应该坚持在提交后重定向的方法
关于返回后的JS,我相信即使在重定向后刷新后,您也希望看到这些JS输出
您可以做的是重定向到
Request.RawUrl+“#someValue”
,然后在页面加载中(不在IsPostBack
)再次注入这些脚本,知道您已经通过hashkey向用户显示了这些脚本(也可以是cookie,也可以是查询字符串,其实并不重要),或者显示类似(“消息已被接受“…”或类似内容。尝试将以下JavaScript代码添加到您的aspx页面
此外,您不应该试图禁用F5,因为有许多用户可能需要在浏览您的网站时使用F5
尝试将以下JavaScript代码添加到您的aspx页面 此外,您不应该试图禁用F5,因为有许多用户可能需要在浏览您的网站时使用F5
不建议禁用基本浏览器功能imoYes,我100%同意你的意见。这应该被视为标准行为而不是更改。我添加了一个注释以突出显示你所说的内容。不建议禁用基本浏览器功能imoYes,我100%同意你的意见。这应该被视为标准行为而不是更改。我添加了一个我想强调一下你说的话。
//bind keydown event to method that disables F5
$(document).on("keydown", PreventRefresh);
function PreventRefresh(e) {
var code = e.which || e.keyCode;
if (code === 116) {
e.preventDefault();
}
}