Comment savoir appeler une méthode sur une page de formulaire Web ASP.NET à l'aide de la méthode getjson sur jQuery?
L'objectif est-ce: p>
Je ne veux pas utiliser un Panneau Update, j'ai fait ces centaines de fois à l'aide du cadre ASP.NET MVC, mais ne peut pas le comprendre à l'aide de formulaires Web! P>
Jusqu'à présent, je peux tout faire, y compris appeler le serveur, il n'appelle tout simplement pas la bonne méthode. P>
Merci,
Kieron p>
Certains code: P>
jQuery(document).ready(function() { jQuery("#<%= AreaListBox.ClientID %>").click(function() { updateRegions(jQuery(this).val()); }); }); function updateRegions(areaId) { jQuery.getJSON('/Locations.aspx/GetRegions', { areaId: areaId }, function (data, textStatus) { debugger; }); }
3 Réponses :
J'ai un peu modifié votre code. J'ai ajouté la sortie côté serveur du clientId à la méthode UpdaTeeGions pour la transmettre. Et j'ai changé votre méthode getjson pour transmettre l'URL avec un paramètre de chaîne de requête (au lieu de données distinctes) et la fonction de rappel. laissez-moi savoir si cela fonctionne! p> p>
Voici un exemple minimaliste qui devrait espérer que vous commencez à démarrer:
<%@ Page Language="C#" %> <%@ Import Namespace="System.Web.Services" %> <script runat="server"> [WebMethod] public static string GetRegions(int areaId) { return "Foo " + areaId; } </script> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>jQuery and page methods</title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> </head> <body> <script type="text/javascript"> $(function() { var areaId = 42; $.ajax({ type: "POST", url: "Default.aspx/GetRegions", data: "{areaId:" + areaId + "}", contentType: "application/json; charset=utf-8", dataType: "json", success: function(data) { alert(data.d); } }); }); </script> </body> </html>
Vous pouvez également utiliser un getjson, mais vous devez modifier le Webmethod dans ce cas. Vous devez le décorer avec:
[WebMethod(EnableSession = true)] [ScriptMethod(UseHttpGet =false, ResponseFormat = ResponseFormat.Json)]