2010-06-11 5 views
1

J'ai un site ASP.NET qui utilise JQuery et ASP.NET UpdatePanel et ScriptManager. Sur une page en particulier, je reçois une erreur javascript:Erreur Javascript ASP.NET :: sys.webforms.pagerequestmanagerservererrorexception

sys.webforms.pagerequestmanagerservererrorexception: Index and length must refer to a location within the string. Parameter name:length 

ScriptResourse.axd code: 0

Edit: Cette erreur ne se produit pas dans mon environnement de développement, que lorsque je publie le code le serveur de test.

Voici ce qui est dans la page principale:

<asp:ScriptManager runat="server" ID="ScriptMgr"></asp:ScriptManager> 

<asp:UpdatePanel runat="server" ID="UpdatePanelMaster"> 
    <ContentTemplate> 

    </ContentTemplate> 
</asp:UpdatePanel> 

Dans la page en question:

<asp:Content ID="ContentHeadEdit" ContentPlaceHolderID="ContentHeadMaster" Runat="Server"> 

    <script type="text/javascript"> 
    $(document).ready(function() { 
     $('#<%= ButtonSave.ClientID %>').button(); 

     Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 

     function EndRequestHandler(sender, args) { 
      $('#<%= ButtonSave.ClientID %>').button(); 
     } 
    }); 
    </script> 

</asp:Content> 

Répondre

1

Ceci est une erreur dans le code côté serveur. Si vous exécutez le débogage (rupture des erreurs), vous devriez obtenir votre numéro de ligne. Alternativement, vous pouvez parcourir votre code-behind pour une ligne de code qui utilise et index et length paramètre. Cela ressemble à une sorte d'appel de manipulation de chaîne, et la valeur de length est négative ou supérieure à la longueur de la chaîne sur laquelle vous travaillez.

+0

J'ai mis à jour le message, mais cette erreur ne se produit pas dans mon environnement de développement, uniquement lorsque je publie le code sur le serveur de test. –

2

J'ai eu ce même problème et finalement résolu en supprimant tous les contrôles AJAX jusqu'à ce que j'avais un formulaire de base sans UpdatePanel (ce qui cache l'erreur côté serveur réel qui se passe). Il s'avère que l'erreur était pure C# issue dans le code derrière.

+0

cela m'a sauvé, je me suis cassé la tête sur cette question pendant un certain temps et de le faire m'a bien indiqué dans le problème sur le code derrière. Merci – Eliseo