2010-11-30 21 views
9

Ma mise en œuvre Pagemethod ne fonctionne pas dans le navigateur Chrome. Je application Web ASP.NET 3.5 développé VS 2008.Pagemethods in asp.net

Le code ci-dessous ne fonctionne pas en chrome ou Safari:

function FetchDataOnTabChange(ucName) 
{ 
    PageMethods.FetchData(ucName, OnSuccessFetchDataOnTabChange, OnErrorFetchDataOnTabChange); 
} 

function OnErrorFetchDataOnTabChange(error) 
{ 
    //Do something 
} 

function OnSuccessFetchDataOnTabChange(result) 
{ 
    //Do something 
} 
+0

Oui son fonctionne mieux dans IE7 et au-dessus, Mozilla correctement, mais échoue dans Chrome et Safari. et je ne veux pas commenter la dernière question. – Chetan

+0

vous aurez besoin de poster du code si vous voulez une réponse –

+0

Pouvez-vous également fournir le code que vous utilisez en javascript? Il existe également un outil de développement permettant de déboguer javascript dans Chrome. __ctrl + shift + j__ – XIII

Répondre

23

Désolé pour la réponse tardive, mais si quelqu'un trébuche sur plus tard, Cela devrait fonctionner dans tous les navigateurs en suivant les étapes ci-dessous.

  • La méthode de page doit avoir la System.Web.Services.WebMethod attribut. [WebMethod]
  • La méthode page doit être publique. [WebMethod] public ...
  • La méthode page doit être statique. [WebMethod] public static ...
  • La méthode page doit être définie sur la page (soit en ligne, soit en code ). Il ne peut pas être défini dans une page de contrôle, de gabarit ou de base .
  • Le gestionnaire de scripts ASP.NET AJAX doit avoir EnablePageMethods défini sur true.

Ceci est d'une application de travail

page ASPX:

/* the script manager could also be in a master page with no issues */ 
<asp:ScriptManager ID="smMain" runat="server" EnablePageMethods="true" /> 
<script type="text/javascript"> 
    function GetDetails(Id) { 
     PageMethods.GetDetails(doorId); 
    } 
</script> 

Code derrière:

[System.Web.Services.WebMethod] 
public static void GetDetails(string Id) 
{ 

} 

Bonne chance! :-)

+0

Je ne comprends pas ceci: "La méthode page ne peut pas être définie dans la page de base". Pourriez-vous expliquer pourquoi? Parce que je dois utiliser des gestionnaires alors. – donRumatta

+0

malheureusement, je ne connais pas la raison technique "pourquoi", mais la réponse est parce que MasterPage n'hérite pas de System.Web.UI.Page donc vous ne pouvez pas appeler PageMethods car techniquement ce n'est pas une page mais en fait un System.Web .UI.MasterPage. – hardba11

+1

Je dois dire que je pense que cette réponse est périmée. Voir ma question ici: http://stackoverflow.com/questions/20554780/inconsistent-pagemethod-behavior-in-different-browsers. Suivi toutes vos démarches, avec des résultats mitigés. – LittleBobbyTables