Server.Transfer显示重复的页面

时间:2013-02-13 05:55:32

标签: c# asp.net .net

我在页面加载事件中调用方法DoSomething():

protected void Page_Load(object sender, EventArgs e)
{
    try
    {
        DoSomething();        
    }
    catch
    {
        Server.Transfer('~/Error.aspx');
    }
}

现在问题是DoSomething如果不满足某些条件,Server.Transfer也会Error.aspx,同时如果我的Page_Load也会抛出异常,那么Server.Transfer也会Server.Transfer 1}}。

现在我在浏览器中显示重复的错误页面。
如何阻止它?
无论我写{{1}} 5我都想要时间,它应该只显示错误页面一次,而不是在1页中显示重复的页面。

1 个答案:

答案 0 :(得分:1)

嗯.. DoSomthing()应该返回一个布尔值,告诉你它是否已经发出了服务器传输?

protected void Page_Load(object sender, EventArgs e)
{
    bool serverTransferToErrorPage;
    try
    {
    serverTransferToErrorPage = DoSomething();
    // some more code that may throw execpetions..
         // ...
         // ...
    }
    catch
    {
    if(!serverTransferToErrorPage)
        Server.Transfer('~/Error.aspx');
    }
}

当然,你的“DoSomthing()”方法看起来应该是这样的:

private bool DoSomthing()
{
   try
   {
      return false;
   }
   catch
   {
      Server.Transfer('~/Error.aspx');
      return true;
   }
}