在我的代码中,我想更新记录并调用 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")
答案 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”的结果。