2009-05-29 78 views
1

假設我在aspx頁面中有一個按鈕,它將表單數據保存到數據庫中。在關聯的事件處理程序中,在發送更新之前,我從web服務讀取了一些可能導致異常的操作。如果發生錯誤,我希望在頁面上顯示足夠的消息,並保留表單中的所有數據。我怎樣才能做到這一點?另外,我的所有頁面都是從basepage繼承的,所以我想,如果可能的話,在基類中包含所有的錯誤處理代碼。如果可能的話,我不希望圍繞任何使用try-catch塊的Web服務調用,如果有任何未處理的異常會自動調用某些方法,如Page_error,但仍將數據保留在表單中。ASP.NET控件事件異常處理

回答

1

如果出現異常,您可以輕鬆地將管理顯示消息(可能設置一些errorMessageLabel的文本)的方法放入從任何派生類調用的超類中(如果要使用繼承爲頁面設置模板)拋出(如果實際上拋出異常,您可以將調用放入catch塊中的superclas方法,或者如果webservice不可用(取決於您的編程風格),則可以手動管理該方法)。

至於保存所呈現的數據,如果viewstate處於打開狀態,並且您沒有動態填充頁面,那麼您就可以 - 如果不是,則需要在viewState或會話條目中顯式保存狀態信息,並將其恢復回來。出了點問題。 這一點真的取決於你的頁面實際上是如何實現的。