日期:2014-05-17  浏览次数:20680 次

Response.Redirect的问题
C# code

        try
        {
            String a="3";
            Response.Redirect("B.aspx");
        }
        catch (Exception)
        {
            Response.Redirect("A.aspx");
        }



以前没有注意,上面的代码为什么“Response.Redirect("A.aspx");”总会执行,如果不是 Response.Redirect的话,其它操作则不会。

------解决方案--------------------
Response.Redirect("B.aspx",false);

是否存在B页面
------解决方案--------------------
catch (Exception ex)
把这个异常的ex错误信息输出来看一下就知道问题出在哪里了
------解决方案--------------------
+ false是不中止本次Response,
把代码弄详细点
------解决方案--------------------
我测试过
Random ran = new Random();
if (ran.Next(1000) % 2 == 0)
{
Response.Redirect("A.aspx");
}
else
{
Response.Redirect("B.apsx");
}
这样并不会有任何错误,猜想是应该之前的Response.Redirect在Catch块中,而编译器编译后会有两个代码块进行Response.Redirect的操作,具体的原因只有微软的人才能说的清楚了,也说不定是一个bug哦!呵呵