关于页面重定向

在程序开发的时候我们经常使用
Response.Redirect("mypage.aspx");
的方法实现页面的重定向,但是有很多人会忘记使用这个方法的前提条件——在重定向之前不能有任何输出到客户端的数据产生。否则的话就会跑出一个异常从而导致程序执行的失败,我曾经见到一个非常难以解决的错误就是由于这个毫不起眼的限制造成的。
难道有数据输出到客户端之后我们就不能进行页面重定向了吗,如果这样的话我们的这个功能就无法实现了,这可是几十万的单子啊,不能因为这么一个功能就丢了。
的确不能再使用上面提到的方法进行重定向了,但是我们可以变通一下嘛。我想到的办法是使用客户端脚本去进行重定向,代码如下:
Response.Write("<script>window.location='mypage.aspx'</script>");
这样就不会因为实现由数据的输出而出现异常了,为了实现在任何情况下都能重定向的功能,我写了下面的函数:
public void Redirect(string strPage)
{
       try
       {
               Response.Redirect(strPage);
       }
       catch
       {
               Response.Write("<script>window.location='"+strPage+"'</script>");
       }
}
这样的话无论在什么情况下进行页面的跳转都会成功的,不信就去试一试了。

posted on 2005-04-22 12:30  Edward.Net  阅读(537)  评论(1)    收藏  举报

导航