2011-03-03 88 views
5

我在ajax更新面板中使用了一個asp.net文本框。如果我進入&#在文本框中,按下保存按鈕,它提供了一個JavaScript錯誤「Sys.WebForms.PageRequestManagerServerErrorException:狀態碼:500」

Sys.WebForms.PageRequestManagerServerErrorException:處理服務器上的請求時出現未知錯誤。從服務器返回的狀態代碼是:500

請幫助我爲什麼會出現此錯誤?

enter image description here

+0

[Sys.WebForms.PageRequestManagerServerErrorException的可能的複製:處理服務器上的請求時發生未知錯誤。「](http://stackoverflow.com/questions/7881470/sys-webforms-pagerequestmanagerservererrorexception-an-unknown-error-occurred-w) – 2017-05-16 11:12:36

回答

-1

當您在多個更新面板中將控件註冊爲AsyncPostbackTrigger時,有時會發生此問題。

如果這不是問題,嘗試添加下面的腳本經理聲明之後:

<script type="text/javascript" language="javascript"> 
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 
    function EndRequestHandler(sender, args){ 
     if (args.get_error() != undefined){ 
      args.set_errorHandled(true); 
     } 
    } 
</script> 

這裏有討論幾個解決方案:http://forums.asp.net/t/1066976.aspx/9/10

+0

有沒有什麼辦法使用相同的用戶控件爲不同的更新面板做這項工作? – Jeff 2013-06-18 14:01:39

+4

您剛剛複製了此答案:http://stackoverflow.com/a/7881543/1017882如果您已將此問題視爲重複,請相應標記它。 -1。 – 2014-02-14 10:45:32

7

ASP.NET Request Validation大概踢和檢測到潛在危險的請求(#&在文本框的值)。這導致HttpRequestValidationException被拋出 - 因此UpdatePanel返回500個HTTP代碼。我看到它的方式有兩種方法來解決這個問題:

  1. 驗證文本框的內容並替換任何潛在的危險(類似HTML)的值。
  2. 禁用請求驗證:

    <%@ Page ValidateRequest="false" %>

如果您選擇禁用請求驗證確保該文本框的值不逐字輸出別的地方在你的應用程序。確保您在顯示時使用HttpUtility.HtmlEncode以避免XSS問題。

相關問題