2010-08-24 8 views
0

j'ai demande ajax à url DataProcessor.aspx comme indiqué ci-dessous, comment puis-je écrire asp.net C# code pour extraire les données JSON de demande et d'affichage à la page DataProcessor.aspxajax méthode post jquery

var json = "{'ItemName':'" + escape(item.val()) + "','CategoryID':'" + category.val() + "','RecordID':'" + record.val() + "'}"; 
      alert(escape(item.val())); 
      alert(category.val()); 
      alert(record.val()); 
      var ajaxPage = "DataProcessor.aspx?Save=1"; //this page is where data is to be retrieved and processed 
      var options = { 
       type: "POST", 
       url: ajaxPage, 
       data: json, 
       contentType: "application/json;charset=utf-8", 
       dataType: "json", 
       async: false, 
       success: function(response) { 
        //alert("success: " + response); 
       }, 
       error: function(msg) { alert("failed: " + msg); } 
      }; 

      //execute the ajax call and get a response 
      var returnText = $.ajax(options).responseText; 
      if (returnText == 1) { 

       record.html(returnText); 
       $("#divMsg").html("<font color=blue>Record saved successfully.</font>"); 
      } 
      else { 
       record.html(returnText); 
       $("#divMsg").html("<font color=red>Record not saved successfully.</font>"); 


      } 
     }); 
    }); 
+1

Voir http://stackoverflow.com/questions/423294/best-way-to-parse-json-data-into-a-asp-net-object pour une discussion sur l'analyse des données JSON dans les objets .NET. –

Répondre

2

Plutôt que de publier le fichier json et de l'analyser manuellement, une autre option serait de créer un service de script et de consommer ce service. Cela a l'avantage d'être plus léger (vous n'aurez pas à parcourir tout le cycle de vie de la page aspx) et de faire le gros du travail pour analyser le json dans un objet.

Fondamentalement, vous aurez juste besoin de créer une méthode web simple qui prend deux arguments, ItemName, CategoryID, RecordID. Appliquez le décorateur Script Service ou à la méthode pour indiquer à .Net que vous souhaitez interagir avec lui via des POSTES JSON et modifiez l'adresse de votre message en "YourWebService.asmx/YourWebMethodName"

Pour gérer les mises à jour de l'affichage, créer un objet à renvoyer de votre fonction qui contient les données que vous souhaitez mettre à jour sur la page et le renvoyer. Traitez la valeur de retour (l'argument 'response' dans votre fonction ci-dessus) dans le cas de succès de votre appel AJAX et mettez à jour l'affichage en conséquence (ne sachant pas comment ou quoi mettre à jour, je ne peux pas vraiment).