2011-01-07 69 views
0

你們都知道如何討厭是這樣的:顯示在ASP.NET AJAX錯誤友好的消息

alt text

我有一個日誌系統和正確的錯誤是非常明確的,但我想給用戶一個更好的信息。

我不斷嘗試幾種方法,但我使用Telerik的組件和良好jQuery和我結束了使用這兩種ASP.NET AJAX方法和jQuery,所以我用

function pageLoad() { 

    try { 
     var manager = Sys.WebForms.PageRequestManager.getInstance(); 
     manager.add_endRequest(endRequest); 
     manager.add_beginRequest(OnBeginRequest); 
     manager 
    } 
    catch (err) { 
     alert(err); 
    } 
} 

以及

$(document).ready(function() { ... } 

alert(err)從未甚至被解僱後OnClick事件

什麼是避免這種錯誤訊息,並提供一個清潔的最佳方法呃方式?

一切,因爲我用這發生在<asp:UpdatePanel>,當我不知道更好(3年前!),我真的不想把事情弄糟,從頭:(

再次生成所有任何幫助是極大的讚賞


更新了更多的錯誤窗口後volpav解決方案

alt text

alt text

回答

0

如果我理解正確你:

var manager = Sys.WebForms.PageRequestManager.getInstance(); 
manager.add_endRequest(function(sender, args) { 
    var error = args.get_error(); 
    if(error != null && error.httpStatusCode != null) { 
     // handle error 
     args.set_errorHandled(true); 

    }  
}); 

- 帕維

+0

與您的代碼,我仍然得到同樣的......它從來沒有達到這個`VAR誤差= args.get_error();'行,我我添加了解決方案後,還使用2張圖像更新了我的問題。有任何想法嗎? – balexandre 2011-01-07 13:54:21

+0

你看過這篇文章:http://weblogs.asp.net/leftslipper/archive/2007/02/26/sys-webforms-pagerequestmanagerparsererrorexception-what-it-is-and-how-to-avoid-it.aspx ? – volpav 2011-01-07 14:02:36

0

你看到的錯誤沒有一個你可以很容易地在客戶端處理。由於PageRequestManager無法解析響應,因此您不要使其能夠處理endRequest和set_errorHandled()。

它告訴你的是,某些事情正在對UpdatePanel的異步回發進行響應。我寫了很久以前的一個常見原因:http://encosia.com/2007/06/19/the-easiest-way-to-break-aspnet-ajax-pages/

由於錯誤消息指出,另一個常見原因是自定義HttpModules注入標記。例如,GoDaddy使用(或習慣於)在免費託管帳戶上注入廣告,例如,它破壞了UpdatePanel。

如果你檢查了類似Firebug或Fiddler的響應,那麼應該很明顯這些外部內容是什麼。我很難在不知道更多關於應用程序的情況下推測它可能是什麼。