在response.redirect之前执行代码

时间:2014-05-09 09:00:27

标签: asp.net vb.net response.redirect

在我的代码中,我想更新记录并调用 EncryptPDF 功能。然后重定向到另一个页面。

但我发现它不会在response.redirect之前执行代码。

根据 Microsoft 信息,代码将在response.redirect之前终止。

如何在重定向到另一个页面之前强制执行代码?

是否有任何代码可以作为重定向?的由于

If Not rec_old Is Nothing Then
    For i = 0 To rec_old.Count - 1

        rec_old.Item(i).CurrentRenumeration = False
        dc.SubmitChanges()

        If (rec_old.Item(i).RemFile Is Nothing Or rec_old.Item(i).RemFile = 0) Then
            EncryptPDF(rec_old.Item(i).RenumID, rec_old.Item(i).SID)
        End If

        If i = rec_old.Count - 1 Then
            LastRecord = True
        Else
            LastRecord = False
        End If
    Next
End If

dc.Dispose()

Response.Redirect("XXX.aspx?SID=" & Request("SID") & "&SSID=" & GetProfile() & "&returnPath=12")

1 个答案:

答案 0 :(得分:0)

尝试使用额外的False属性调用Response.Redirect -

Response.Redirect("XXX.aspx?SID=" & Request("SID") & "&SSID=" & GetProfile() & "&returnPath=12", False)

以下是解释(来自http://forums.asp.net/t/1396869.aspx?Response+Redirect+True+False

如果您正在处理页面“A”,那么您会发出重定向

Response.Redirect('Default.aspx",True)  

将向客户端发送新页面的重定向,并且页面“A”将立即停止处理,因为将发生线程中止。这是重定向的默认行为。

如果您将重定向发布为

Response.Redirect('Default.aspx",False) 

然后将向客户端发送新页面的重定向,但将允许页面“A”继续处理。也许页面“A”有清理工作或其他东西。

重定向后,客户端永远不会看到来自页面“A”的结果。