2013-02-13 46 views
1

我在頁面加載事件有方法DoSomething的()的調用:Server.Transfer的顯示重複的網頁

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

現在的問題是DoSomething也做了Server.TransferError.aspx如果某些條件沒有被滿足,同時,如果我的Page_Load也拋出異常,那也是Server.Transfer

現在我在瀏覽器中顯示重複的錯誤頁面。
如何解決此問題?
我希望無論如何編寫Server.Transfer 5次,它只應顯示一次錯誤頁面,而不是在1頁中顯示重複頁面。

+0

豈不標誌的幫助? – nunespascal 2013-02-13 06:00:58

+0

你試圖在這裏解釋什麼?把你的整個代碼放在這裏。或者使用 http://msdn.microsoft.com/en-in/library/system.web.httpresponse.redirectpermanent.aspx – 2013-02-13 06:02:54

+0

@SaroopTrivedi:你知道重定向和傳輸有區別嗎? – Jack 2013-02-13 06:04:33

回答

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'); 
    } 
} 

而且ofcourse你的 「DoSomthing()」 方法應該是財產以後這樣的:

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