Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 防止在没有page.redirect的情况下重新发送表单_C#_Asp.net_.net_Webforms - Fatal编程技术网

C# 防止在没有page.redirect的情况下重新发送表单

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

也许你们中的一些人知道这个问题,如果按F5刷新浏览器,表单会被重新提交。 我正在寻找一种方法来防止这种情况,我所找到的解决方案是在提交后在同一页面上进行重定向

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();
            }
}