在 Edge 浏览器中重新提交表单

Form re-submitting in Edge browser

我有一个简单的表单一键式按钮和一个网格视图。当用户点击按钮时,他们的名字和他们点击的时间被记录下来。我使用元标记每 30 秒刷新一次页面。它在 IE、Chrome 和 Firefox 中运行良好,但在 Edge 浏览器上,当它刷新时,它会弹出一个窗口让用户重新提交,每次重新提交并再次记录它们。

<meta http-equiv="refresh" content="30" />
    <form id="form1" runat="server">    
    <asp:Button ID="btnSave" runat="server" Text="Pick Up"/>
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
        <Columns>
            <asp:BoundField DataField="PLUSER" HeaderText="User" S 
             SortExpression="name" ItemStyle-Width="100px" />
            <asp:BoundField DataField="PLDATE" HeaderText="Date" 
             SortExpression="timeDate" ItemStyle-Width="250px" />
        </Columns>
    </asp:GridView>
    </form>

edge在meta标签方面有什么特别的设置吗?

为了解决所有浏览器的这个问题,最终使用 asp.net 计时器而不是元标记,它在边缘和其他浏览器中工作。

HTML

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>           
    <asp:Timer ID="Timer1" runat="server"></asp:Timer>

Vb.Net

Dim MinuteCount = 0
Dim x = "off"
Dim count As Integer = 0

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If (Not IsPostBack Or x = "off") Then
        MinuteCount = 0
        Timer1.Interval = 60 * 500
        Timer1.Enabled = True
        x = "on"
    End If      
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    x = "off"
    Label1.Text = "Checked at: " & DateTime.Now()
    checkData()
End Sub

if someone else figures out why the meta tag fails in Edge...

我发现了 META 标签在 Edge 浏览器中不起作用的几个原因。

  1. 安全设置:

Internet Explorer 中的安全设置不允许元标记刷新。它位于“安全”选项卡下,然后选择“自定义级别”和“杂项”下的“元标记刷新”。如果禁用,元刷新将停止工作。

  1. 可能需要您在内容中指定URL:

    http://www.whosebug.com">

  2. META标签不是空标签,在HTML中没有结束标签,只有在XHTML.

    [=43=中]

所以HTML:

<meta http-equiv="refresh" content="30">

XHTML:

<meta http-equiv="refresh" content="30"> </meta>

Ref.


恐怕即使有所有这些潜在的解决方案,它仍然无法在 Edge 中运行。 一个好的解决方法是使用渐进增强,就像您使用脚本管理器所做的那样,另一种方法是直接在此处使用 Javascript:https://davidwalsh.name/meta-refresh-javascript

<script>
    ESPN_refresh=window.setTimeout(function(){window.location.href=window.location.href},900000);
</script>
<noscript>
    <meta http-equiv="refresh" content="900" />
</noscript>

Use JavaScript as your primary means for automatic page refreshes and a META tag as your fallback.