est-il possible d'appeler la fonction ASP.NET CODEBeHind à partir de JavaScript. P>
6 Réponses :
Non, il n'est pas possible d'appeler le code ASP.NET derrière la fonction de JavaScript directement. ASP.NET Code derrière Exécute sur le serveur dans le contexte du processus de travailleur ASP.NET. JavaScript est exécuté sur le client dans le contexte du navigateur du client. P>
La seule façon La seule façon JavaScript pourrait déclencher l'exécution du code ASP.NET derrière consiste à effectuer un appel AJAX à partir du JavaScript sur le serveur. P>
@Aristos - Comment avez-vous l'intention d'appeler une méthode côté serveur à partir du navigateur sans utiliser Ajax?
@Michael Vous venez d'appeler une page avec vos paramètres et à la page où vous renvoyez 204 code d'état. Faire un test pour le voir. :)
@Aristos - Vous ne pouvez pas "appeler" une page. Vous pouvez faire une demande HTTP, mais rien ne garantit qu'il existe un autre agent HTTP à l'écoute de l'adresse de terminaison, ou que cet agent répondra, ou que la réponse ne sera pas une copie des caches de la demande précédente renvoyée par un intermédiaire. En d'autres termes - il n'y a aucune garantie qu'un code sera exécuté à la suite de cette demande HTTP. (Eh bien, largement parler, un code i> sera toujours exécuté, bien sûr, mais il pourrait bien être le code que vous souhaitez / attendez :-))
@FANCI @MICHALE Je place une réponse ici avec l'exemple de code d'état 204.
@Michael Oui, vous ne pouvez pas avoir de commentaires sur votre utilisateur que le code est enfin exécuté. Ok, ce n'est qu'un exemple et un moyen de l'appeler, pas le parfait, juste une manière. Cependant, si le code n'est pas exécuté, le 204 n'est pas renvoyé et une page vide apparaît que la page ne peut pas charger.
Vous pouvez utiliser voir appeler __dopostback dans JavaScript < / fort> p> __ dopostback code> pour créer un publication de JavaScript. Ajoutez simplement un contrôle de serveur avec
Oui, vous pouvez créer une méthode Web comme .. puis appelez javascript comme .. p> Ceci aussi besoin ajouter p>
@Muhammad: Avez-vous besoin d'utiliser un scriptManager code> pour que cela fonctionne? Pourriez-vous montrer que Markup, s'il vous plaît?
Oui, c'est une façon de faire un appel Ajax.
Je préférerais une approche de pageMethod Muhammad Akhtar. Juste une notes courte: vous n'avez pas besoin du scriptManager. Le scriptManager ne génère que les méthodes de proxy JavaScript pour vous. Si vous avez déjà JQuery sur votre page, vous pouvez oublier le scriptManager et écrire quelque chose comme celui-ci sur votre page à la place:
<script type ="text/javascript"> $(document).ready(function() { $("#AjaxLink").click(function(e) { e.preventDefault(); $.ajax({ type: "POST", url: "YourPage.aspx/updateContent", data: "{}", contentType: "application/json; charset=utf-8", dataType: "json", success: function(result) { $("#content").html(result.d); } }); }); }); </script>
Si vous travaillez sur un projet non-Ajax, vous pouvez essayer System.Web.UI.ICALLBACKEVENTHANDLER. P>
échantillons ici: p>
http://msdn.microsoft.com/en-us/library /ms178210.aspx P>
http://www.ajaxmatters.com/ 2006/05 / Utilisation-ICALLBACKEVENTHANDLER-IN-ASP-NET / P> blockQuote>
Cela utilise toujours Ajax sous le capot - pour faire un appel HTTP hors limites sur le serveur.
$("#control").click(function() { PageMethods.set_single_amount(value,afercalling) }); function afercalling(result) { alert(result); }
Pourquoi cela n'est-il pas fermé comme un duplicata? Stackoverflow .com / questions / 3709426 / ...
Dupliqué possible de appelant la méthode côté serveur ASP.NET via jQuery