11
votes

Utilisation de la méthode JQuery Getjson avec un formulaire Web ASP.NET

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>

  1. utilisateur clique sur un élément de la liste li>
  2. La valeur est envoyée au serveur li>
  3. Server répond avec la liste liée des trucs, formatés à l'aide de JSON LI>
  4. peupler la boîte secondaire li> OL>

    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;
            });
    }
    


0 commentaires

3 Réponses :


0
votes

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. xxx

laissez-moi savoir si cela fonctionne!


0 commentaires

26
votes

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>


0 commentaires

0
votes

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)]


0 commentaires