1

ページ読み込みイベントでメソッド DoSomething() を呼び出しています。

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

現在、問題は、いくつかの条件が満たされていない場合にも to を実行し、その間に私も例外をスローした場合DoSomethingServer.Transferそれも. ブラウザに重複したエラーページが表示されるようになりました。どうすればこれを止めることができますか? 5回書いてもエラーページが1回だけ表示され、1ページに重複ページが表示されないようにしたい。Error.aspxPage_LoadServer.Transfer



Server.Transfer

4

1 に答える 1

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;
   }
}
于 2013-02-13T06:24:22.303 に答える