Due to Response.End calls Thread.Abort.
To avoid this error you can catch for it like most people do it.
Or do it the “right” way.
Don’t call Response.End by using the overload. Use HttpApplication.CompleteRequest() instead.
Response.Redirect(stringURL, False)
HttpContext.Current.ApplicationInstance.CompleteRequest()
Unfortunately, since you’re not aborting the thread the postback finishes and the html gets sent to the client.
Found a great post on the topic here by John S. Reid, where he goes into details on the solution. For now, here’s the final solution. I would suggest a base page. But this is what you would have on your actual page.
Private blnPageIsTerminating As Boolean = False
Protected Sub SomePageEventOrOtherMethodThatYouAreRedirectingFrom()
Response.Redirect(UrlDocumentLink(oCurrDocument.DocumentMasterID), False)
HttpContext.Current.ApplicationInstance.CompleteRequest()
blnPageIsTerminating = True
End Sub
Protected Overrides Sub RaisePostBackEvent(ByVal sourceControl _
As IPostBackEventHandler, ByVal eventArgument As String)
If blnPageIsTerminating = False Then
MyBase.RaisePostBackEvent(sourceControl, eventArgument)
End If
End Sub
Protected Overrides Sub Render(ByVal writer As HtmlTextWriter)
If blnPageIsTerminating = False Then
MyBase.Render(writer)
End If
End Sub