2014-05-09 144 views
0

在我的代碼中,我想更新記錄並調用EncryptPDF函數。然後重定向到另一個頁面。在response.redirect前執行代碼

但我發現它不會在response.redirect之前執行代碼。

根據微軟信息,代碼將在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") 
+2

你需要擺脫'Next'和'Else'之間的'End If' - 我很驚訝代碼甚至運行,因爲我不希望它跟隨'End If'後面的'Else'工作。 。 – Tim

+0

嗨,只是「複製和粘貼」的錯誤。沒有其他情況 –

回答

0

嘗試調用Response.Redirect的一個額外false屬性 -

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」的結果。