【问题标题】:Clear Server side literal control before page unload in ASP.NET在 ASP.NET 中卸载页面之前清除服务器端文字控件
【发布时间】:2015-12-30 15:42:44
【问题描述】:

自过去几个小时以来,我一直处于满足状态,没有找到任何工作,我有一个表单 html 存储在 VB.NET 中的字符串中。

Dim form as string = <form id="PostForm" name="PostForm" action="https://www.example.com" method="POST"><input type="hidden" name="1" value="1"><input type="hidden" name="2" value="2"></form>

然后我在这个字符串中以编程方式添加一个脚本

form += "<script>PostForm.submit();

在一个按钮上单击我会生成这个表单,然后将它分配给一个像

这样的文字控件
Page.Controls.Add(New LiteralControl(form))

它提交表单并重定向到期望站点 example.com,我需要在从我的页面重定向之前清除该文字控件,因为一旦在 html 中添加表单并且用户按下浏览器的后退按钮,它会再次呈现表单并提交IE中专门的表单。

【问题讨论】:

    标签: javascript jquery html asp.net vb.net


    【解决方案1】:

    考虑使用中间“处理”页面,该页面重定向到结果页面。否则称为Post/Redirect/Get。这是防止通过“后退”按钮重新加载表单或刷新页面的标准方法。

    例如

    您的表单action 转到http://www.example.com/processing。表单处理完信息后,会重定向到http://www.example.com/results

    【讨论】:

    • 对于中间页面,我需要重定向该页面,然后从那里处理表单重定向,在这种情况下,当用户从 www.example.com 按下返回按钮时,它也会返回到该中间页面。跨度>
    • 这里的解决方案可能有助于解决重新加载问题 - stackoverflow.com/questions/5381162/…。它建议使用查询字符串值来检查它是否是回发。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多