11
votes

ASP.NET ScriptManager PageMethods est indéfini

Je veux appeler des méthodes de côté STATIC Server de JS, donc je décide d'utiliser le contrôle de scriptManager sur mon site. J'ai donc une page maître, avec une telle structure: xxx

mais lorsque la page est chargée, j'ai une exception JS - PageMethods est indéfinie. Je suppose que cet objet sera créé implicite afin que je puisse l'utiliser dans mon javascript.


0 commentaires

4 Réponses :


24
votes

Pour utiliser des pageMethods, vous devez suivre ces étapes:

  1. Vous devez utiliser scriptManager CODE> et définir activerpageMethods code>. (Vous avez fait). Li>
  2. Créer un Méthode static code> dans votre code derrière et utilisez le [webmethod] code> attribut. li>
  3. Appelez votre méthode en JavaScript comme si vous devriez faire en C # mais que vous avez plus de paramètre remplissage, le Essosse code> et Error code> Callbacks. (Vous avez fait). Li> ol>

    Avez-vous manqué de ces étapes? P>

    EDIT: Je viens de réaliser que vous avez fait ceci: P>

    [WebMethod]
    public static string GetGiftFileUrl(string name, int width, int height)
    {
        //... work
        return "the url you expected";
    }
    


1 commentaires

Peut-être Webmethod-PageMethods et Json.



3
votes

Dans votre codeBeHind Créez cette méthode:

<script type="text/javascript">
    function getGiftFileUrl() {
        PageMethods.GetGiftFileUrl("hero", 1024, 768, OnSucceeded, OnFailed);
    }

    function OnSucceeded(response) {
        alert(response);
    }
    function OnFailed(error) {
        alert(error);
    }


    getGiftFileUrl();
</script>


1 commentaires

Vous manquez l'appel actuel à GetGiftFileURL () à partir du contrôle ASP



2
votes

Je me rends compte pourquoi l'objet PageMethod était indéfini, car le composant ScriptManager est placé à côté du script qui utilise PageMethod, alors lorsque la page est rendue et que le script est exécuté, il n'y a pas de pageMethod en ce moment. J'ai donc besoin d'appeler getgiftfileURL () sur le bouton Clic ou sur l'événement de la fenêtre de fenêtre, lorsque tous les scripts de la page sont prêts à être utilisés.


1 commentaires

tout échantillon final avec solution? ou marqué @Vitorcanova réponse.



-4
votes
 <script type="text/javascript">
       function Generate()
       {              
           var result = PageMethods.GenerateOTP(your parameter, function (response)
           {
               alert(response);
           });
       }
</script>

  Will 100% work.

0 commentaires