2010-06-10 32 views
1

我想構建用戶友好的錯誤報告。錯誤的輸入,數據庫連接錯誤等。 問題是我需要爲3個不同的系統實現相同的模塊,併爲UI使用jQuery UI模式框。ASP.NET中的用戶錯誤報告

  1. 當我重定向到另一頁即ie。 db連接錯誤我重定向到 錯誤頁面
  2. 當我使用返回到相同的頁面ie。 輸入值1比2的值越大 當它應該是其他方式
  3. ASP.NET AJAX的UpdatePanel錯誤, 對於不經常做 postpacks 的UpdatePanel控件內輸入錯誤。

感謝與執行任何幫助......

爲了澄清我的問題

我不需要輸入或對象驗證框架。我使用ASP.NET和我自己的業務邏輯在客戶端和服務器端進行驗證。

我真正需要的是

幫助構建一個類,將顯示錯誤給用戶,當前進程是我趕上例外,錯誤的輸入值或錯誤的鏈接,並基於該節目的用戶友好的消息。我沒有時間和興趣學習日誌框架,因爲從我的短期經驗來配置任何預先制定的高級框架(對我而言是低級別的ASP.NET)很難擁有自己的業務邏輯,有時需要重新設計應用程序反正... ...我的問題很清楚上面。我需要使用jQuery UI來顯示集中的消息。

當我重定向到另一個頁面,我可以在會話保存錯誤,並得到它的其他頁面上,如果我用回同一頁我無法使用會話,也沒有運氣壓倒一切的母版公共變量。當我對Ajax的UpdatePanel我想再次驗證數據並顯示jQuery UI的模式...

多數民衆贊成

回答

0

不同的策略將是在客戶端上進行一些驗證,並因爲你是使用jQuery有一個叫Validation一個很好的形式驗證插件。這是一個good demo page。這將阻止你回發到服務器,直到你有適當的提供的數據類型爲你形成並會與你的Ajax更新板正常工作。

有了這個插件你的HTML標記是相當簡單:

<form id="theForm"> 
    <input id="startDate" type="input" class="required datetime"/> 
</form> 

這將消除需要直接到Error.aspx,存儲會話變量等

對於發生這些錯誤在服務器上,如果發生DBConnection錯誤,您需要考慮用戶是否應該能夠進一步發展。在這種情況下,您可以重定向到錯誤頁面,注入錯誤文本並讓客戶端在jQuery對話框中顯示內容。

0

編輯:你登錄例外數據庫?如果不是,我會推薦至少一個基本的日誌。其他替代方案將使用log4net登錄到滾動文件appender。然後,無論顯示錯誤的方式和位置如何,都可以從日誌中加載適當的錯誤以顯示給用戶。

log4net

而且,不是警告:不顯示DB連接錯誤給用戶。記錄它們,以便您知道正在發生的事情,然後告訴用戶發生了錯誤,並且知道該錯誤並對其進行調查。驗證輸入

末編輯

的一個好方法是將驗證您的數據類。這使您可以隨時驗證它們。我知道這並不能解決您的重定向方案,這更多的是工作流程問題,我希望其他人可以幫助您。

我提到把輸入驗證你的數據類的原因是,它可以讓你當你的驗證被稱爲完全控制權,它允許您驗證多次,在客戶端和服務器端的例子。

一個好的實施這是FluentValidation框架,它可以擴展到自動生成客戶端驗證,使用jQuery驗證插件。

這是越來越流行的另一種選擇是數據註釋。我還沒有這些經驗,但他們值得用你最喜歡的搜索引擎搜索。

+0

我更感興趣的是如何實現中心的用戶的消息,而在重定向,返回和AJAX回傳,而不是框架,測試值本身。 – eugeneK 2010-06-10 09:13:54