Question

J'utilise les méthodes de page ASP.NET pour mon application. Tout fonctionne comme un charme mais je ne veux pas que mes méthodes de page soient générées en ligne dans la page.

  1. Est-il possible de les déplacer dans un fichier WebResource.axd ou quelque chose de similaire? Je ne veux pas vraiment écrire mon propre proxy juste pour déplacer celui qui est généré loin de la page.

  2. J'ai plusieurs méthodes de page dans ma page de base. Existe-t-il un moyen d'indiquer au gestionnaire de script les méthodes que je souhaite inclure pour la page concernée, car je n'utilise pas toutes les méthodes sur toutes les pages?

Était-ce utile?

La solution

  

J'ai plusieurs méthodes de page dans mon   page de base. Y at-il un moyen de dire à la   gestionnaire de script quelles méthodes je veux   inclus pour la page particulière que je   n'utilise pas toutes les méthodes sur toutes les pages?

Je ne suis pas sûr que cela soit possible. Ce que je ferais alors, cependant, serait de déplacer vos méthodes spécifiques à une certaine page dans la page elle-même plutôt que dans la page de base.

Vous pouvez utiliser des services Web asmx plutôt que des méthodes de page pour accéder à la logique côté serveur à partir de JavaScript.

[System.Web.Script.Services.ScriptService]
public class MyWebService
{

   [WebMethod]
   public string GetData(int id)
   {
      //do some work
      //return result
   }

}

Dans votre code aspx ou ascx, procédez comme suit

function someFunction(){
   WebServiceNamespace.MyWebService.GetData(123, onSuccessCallback, onErrorCallback);
}

function onSuccessCallback(result){
   //process your result. Usually it is encoded as JSON string
   //Sys.Serialization.JavaScriptSerializer.deserialize(...) can be used for deserializing
}

function onErrorCallback(){
   //display some info
}

Il vous faudrait regarder comment l’objet retourné de votre service Web est codé. Normalement, il est encodé en Json. Je ne me souviens plus maintenant si cela doit être spécifié explicitement dans votre web.config.

// Modifier:
Ce que j'ai oublié Vous pouvez utiliser asp.net ScriptManager pour enregistrer vos scripts et vos services Web:

<asp:ScriptManager ID="ScriptManager1" runat="server">
   <Scripts>
      <asp:ScriptReference Path="~/scripts/WebServiceScripts.js" />
   </Scripts>
   <Services>
      <asp:ServiceReference Path="~/Services/MyWebService.asmx" />
   </Services>
</asp:ScriptManager>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top