刷新导致我的帖子发布到"发布"再次

时间:2015-04-08 12:17:45

标签: javascript html asp.net vb.net

所以我的帖子方法是这样的:

<form method = "post">

在帖子中,我有这个:

<input name="insertInto" type="submit" value="Insert">

To&#34; catch&#34;单击了Insert按钮,我在我的VB.NET代码中使用了它:

If (request.Form("insertInto") = "Insert")
End If

现在这种方法非常接近......除非我刷新页面。当我刷新页面时,帖子似乎&#34; post&#34;再次。就像在,只是刷新页面,Insert按钮似乎再次被击中。我该如何防止这种情况?

2 个答案:

答案 0 :(得分:0)

当您点击&#34;刷新&#34;时,会将帖子数据再次发送到该页面(现代浏览器中会显示一个警告框,通知您)。

避免这种情况的一种方法是在显示html和动作执行之间有一个页面。然后,表单将提交给操作执行,在完成任何操作后,它会将用户转发回HTML页面。

这有意义吗?

答案 1 :(得分:0)

在您的回答中,您提到您已使用VB.Net代码来帮助执行Insert代码。您可以在后面的代码中进一步扩展VB.Net的使用,以帮助解决您遇到的问题。

这是一个有希望帮助你的例子:

在您的ASPX页面中,您可以使用以下内容替换您的表单代码:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button runat="server" ID="btnInsertInto" Text="Insert" />
    </div>
    </form>
</body>
</html>

表单的提交现在由ASP Buttonasp:Button)处理,并且与代码隐藏文件中的事件相关联:

Private Sub btnInsertInto_Click(sender As Object, e As EventArgs) Handles btnInsertInto.Click
        ' Handle button click code here..
End Sub

在同一个代码隐藏类中,您可以使用Page_Load子来处理页面初始化代码:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
            ' Page initialization code goes here..
    End If
End Sub

因此,整个代码隐藏类看起来像:

Public Class WebForm1
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
            ' Page initialization code goes here..
        End If
    End Sub

    Private Sub btnInsertInto_Click(sender As Object, e As EventArgs) Handles btnInsertInto.Click
        ' Handle button click code here..
    End Sub
End Class

当我在发布之前对此进行测试时,我能够在不执行插入代码的情况下刷新页面。