2014-05-09 2 views
0

내 코드에서 레코드를 업데이트하고 EncryptPDF 함수를 호출하고 싶습니다. 그런 다음 다른 페이지로 리디렉션합니다.response.redirect 전에 코드 실행

그러나 나는 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

안녕하세요, 그냥 "복사하여 붙여 넣기"실수입니다. Else 사건은 없다. –

답변

0

시도 - 여기

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"의 결과를 보지 못합니다.