2009-08-13 3 views
5

Я использую asp.net с C# и используя Pannel обновления, а также управление вспышкой я получаю ошибку когда-то не все время и не страницы Navigate после затем плз помочь мнеSys.WebForms.PageRequestManagerServerErrorException

Ниже приводится massange на всплывающем окне: -

«Sys.WebForms.PageRequestManagerServerErrorException: произошла неизвестная ошибка при обработке запроса на сервере код состояния, возвращенный с сервера была: 0»

Пожалуйста Помогите мне, возможно, в демонстрационное время приложение может сделать carsh

+0

Как вы это исправили? – James123

ответ

3

Ошибка 0 означает, что ошибки не было. Я не знаю, почему это происходит, но когда это происходит, я просто отмечаю ошибку как обработанную и ничего не взорву. Просто добавьте следующий JavaScript, и ваши проблемы исчезнут.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>Untitled Page</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <asp:ScriptManager ID="ScriptManager1" runat="server" /> 
     <script type="text/javascript" > 
     (function() { 
      var prm = Sys.WebForms.PageRequestManager.getInstance(); 

      if (prm) 
      { 
       prm.add_endRequest(
       function (sender, args) {    
        // Any code you want here 

        if(args.get_error() && args.get_error().name === 'Sys.WebForms.PageRequestManagerServerErrorException') 
        { 
         args.set_errorHandled(args._error.httpStatusCode == 0); 
        } 
       }); 
      } 
     })(); 
     </script> 
    </form> 
</body> 
</html> 
5

Что я помню, эта ошибка была встречающейся в моем случае, когда элемент управления календарем было щелкнули и отправили обратно, чтобы заполнить значение в текстовом поле. Этот элемент управления календарем находился в UpdatePanel. Во время этого календаря контрольный пост назад, если я нажму кнопку, которая не находится в UpdatePanel (и заставляет страницу отправлять сообщения назад), возникает эта ошибка.

Вы можете следить за этим: http://msdn.microsoft.com/en-us/library/bb398934.aspx

Добавив этот скрипт вы можете избежать отображения ошибок.

<script type="text/javascript" language="javascript"> 
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 
    function EndRequestHandler(sender, args) { 
     if (args.get_error() != undefined) { 
      var errorMessage; 
      if (args.get_response().get_statusCode() == '200') { 
       errorMessage = args.get_error().message; 
      } 
      else {     
       // Error occurred somewhere other than the server page. 
       errorMessage = 'An unspecified error occurred. ';          
      } 
      args.set_errorHandled(true);     
     } 
    } 
</script> 
+0

Убедитесь, что этот скрипт установлен после того, как у вас есть ScriptManager - в противном случае вы получите ошибку «sys not defined» (как я и сделал!) –

0

Мне удалось создать аналогичную ошибку с повторителем, который использовал чередующиеся строки, где один из элементов управления отсутствовал в чередующихся стилях. Например, 'Literal1' был определен в <ItemTemplate>, но не <AlternatingItemTemplate>. Я понимаю, что на этот вопрос был дан ответ, но, надеюсь, это сэкономит кому-то время отладки.

Смежные вопросы