Response is object of HttpResponse class and Redirect method of the HttpResponse class
2.
Respone.Redirect method first sends request
for new page to web browser then web browser sends this request to web server
then web server sends to response web browser and page change.
3.
Response.Redirect method can be use for redirect on any type of pages
like .aspx,.html,.pdf etc from .aspx page.
4.
Response.Redirect method changes url of web browser.
5.
Response.Redirect is two overloaded method.
(i) Response.Redirect("home.aspx"); //url
of new page
(ii) Response.Redirect("home.aspx", false);/*first parameter url of page,
second
parameter for endResponse*/
6. When
use Response.Redirect
method a ThreadAbortException exception occurs.
7. Response.Redirect method call Response.End internally.
Problem
:
When
Response.Redirect method call in try block
then catch block excute and exception write in log file means extra code
will be excute.
try
{
Response.Redirect("home.aspx");
//url of new page
}
catch(Exception
ee)
{
Response.Write(ee.Message);
}
Above code catch block excute and give
Exception :
โ
Unable to evaluate expression because the code is optimized or a native frame
is on top of the call stack.โ
Solution
:
Response.Redirect
method excutes after that should not excute Response.End method. For this Response.Redirect method second parameter set false so that
Response.Redirect method not internal
call of Response.End method.
try
{
Response.Redirect("home.aspx",
false);/*first
parameter url of
page,second parameter for endResponse*/
}
catch(Exception
ee)
{
Response.Write(ee.Message);
}
Here catch block does not call.