tel*_*tri 6 asp.net response.redirect
我有一个Response.Redirect在我的Page_Load:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
...Code
Response.Redirect("http://www.mysite.com")
End Sub
Run Code Online (Sandbox Code Playgroud)
在添加Response.Redirect之前,我有其他子例程和工作代码
当Response.Redirect加入他们都不会处理自己的代码,并自动执行该Response.Redirect网站.
当没有时,我的代码可以正常工作Response.Redirect.
使用
Response.Redirect("http://www.mysite.com", false)
Run Code Online (Sandbox Code Playgroud)
第二个参数指示当前页面的执行是否应该终止.
如果您使用Response.Redirect("http://www.mysite.com"),当前页面执行将终止
请用
Response.Redirect("http://example.com", false)
Run Code Online (Sandbox Code Playgroud)
根据PRB:如果您使用Response.End,Response.Redirect或Server.Transfer,则会发生ThreadAbortException:
如果使用Response.End,Response.Redirect或Server.Transfer方法,则会发生ThreadAbortException异常.您可以使用try-catch语句来捕获此异常.
该到Response.End方法结束的页面执行和转移的执行,以在应用程序的事件管线的Application_EndRequest事件.不执行Response.End之后的代码行.
Response.Redirect和 Server.Transfer方法中会出现此问题,因为两个方法都在内部调用Response.End.
若要解决此问题,请使用下列方法之一:
对于Response.End,调用 HttpContext.Current.ApplicationInstance.CompleteRequest方法而不是Response.End来绕过代码执行到Application_EndRequest事件.
对于Response.Redirect,使用一个重载,Response.Redirect(String url,bool endResponse),它为endResponse参数传递false以禁止对Response.End的内部调用.例如:Response.Redirect("nextpage.aspx",false); 如果使用此变通方法,则执行Response.Redirect之后的代码.对于Server.Transfer,请改用Server.Execute方法.
| 归档时间: |
|
| 查看次数: |
16480 次 |
| 最近记录: |