2016-12-30 3 views
0

Ich bin neu in AJAX und C#, also versuche ich, sie zusammen zu arbeiten. Ich baue eine Web-Anwendung und ich bin eine Methode aus C# in meiner Ajax-Funktion aufrufen, und wenn alles funktioniert, dann möchte ich die Erfolgsmeldung zurück zu meiner C# -Klasse erhalten. Wie kann ich das machen? Das ist meine Ajax-MethodeWie kann ich eine Ajax-Antwort in C# zurückgeben?

<script type="text/javascript"> 


Hello(); 
    function Hello() { 
     $.ajax({ 
      type: "POST", 
      url: "Dtata.aspx/Hello", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (result) { 
       response(result.d); 
      }, 
      error: function (result) { 
       alert('There is a problem processing your request'); 
      } 
     }); 
    } 


</script> 

    //Basically I want to know the success/failure value from the Ajax call and print it back to my console. 

    protected void Page_Load(object sender, EventArgs e) 
    { 


    } 

    [WebMethod] 
    public static string Hello(string name) 
    { 
     return name; 
    } 
+0

Ich glaube, Sie verpasst Um den String-Namen in Ihrem Ajax-Aufruf zu übergeben ..somthing wie: $ .ajax ({ Typ: "POST", URL: "Dtata.aspx/Hallo", contentType: "application/json; charset = utf-8 ", dataType:" json ", Daten: {Name: 'Hallo'} Erfolg: Funktion (Ergebnis) { Antwort (Ergebnis.d); }, Fehler: Funktion (Ergebnis) { alert ('Es besteht ein Problem bei der Verarbeitung Ihrer Anfrage'); } }); –

+0

Sie versuchen, eine kreisförmige Anfrage-Antwort zu erstellen. Die Antwort, die von der C# -Web-Methode gesendet wird, wird im AJAX-Erfolg vorhanden sein. Sie versuchen, das erneut an den Server zu senden. –

Antwort

0

haben Sie auch die Daten in Ihrem Ajax-Aufruf zu passieren versucht? (String name) .. dazu führen, dass Back-End-Dienst (webMethods) haben es in seiner Methode param ... so etwas wie:

<script type="text/javascript"> 




     Hello(); 
      function Hello() { 
       $.ajax({ 
        type: "POST", 
        url: "Dtata.aspx/Hello", 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        data:{name:'hello'}, 
        success: function (result) { 
         response(result.d); 
         Counter() //<-- CALL OTHER AJAX METHOD TO INCREASE COUNTER ON BACK END 
        }, 
        error: function (result) { 
         alert('There is a problem processing your request'); 
        } 
       }); 
      } 


function Counter() { 
       $.ajax({ 
        type: "POST", 
        url: "Dtata.aspx/Counter", 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 

        success: function (result) { 
         console.log(result.d); 
        }, 
        error: function (result) { 
         alert('There is a problem processing your request'); 
        } 
       }); 
      } 


     </script> 

      //Basically I want to know the success/failure value from the Ajax call and print it back to my console. 
     private int _counter; 
      protected void Page_Load(object sender, EventArgs e) 
      { 


      } 

      [WebMethod] 
      public static string Hello(string name) 
      { 
       return name; 
      } 



      [WebMethod] 
       public static int Counter() 
       { 
        this._counter = this._counter +1; 
        return this._counter 
       } 
+0

: - Danke. Aber wie drucke ich die Erfolgs-/Fehlerantwort vom Ajax-Aufruf zurück zu meiner C# -Klasse? –

+0

Entschuldigung ... verstehe nicht genau, was Sie tun wollen .. Drucken Sie die Antwort? ... oder senden Sie es an das Back-End zu anderen WebMethod? –

+0

: - Mein ultimatives Ziel ist also, dass ich einen Counter in meiner C# -Klasse habe. Der Zähler wird jedes Mal inkrementiert, wenn die Daten von meiner C# nach ajax-Methode übergeben werden, und die Methode gibt eine "Erfolg" -Antwort zurück. Der Zähler wird nur erhöht, wenn die Antwort erfolgreich ist. Deshalb muss ich eine Möglichkeit finden, die Ajax-Antwort zu lesen, damit ich meinen Zählerwert in meiner C# -Klasse erhöhen kann. –

0

Sie Daten in Ajax-Aufruf verpasst:

var counter=0; 
$.ajax({ 
    type: "POST", 
    url: "Dtata.aspx/Hello", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    data:{name:"test"} 
    success: function (result) { 
      //result is response from c#. you can do your trick here 
      alert(result.d); 
      if(result.d=="success"){ 
       counter++; 
      } 
    }, 
    error: function (result) { 
      alert('There is a problem processing your request'); 
    } 
}); 
+0

: - Wie sende ich den Zählerwert zurück zu meiner C# -Klasse weil Der Zählerwert wird als ein Array-Index gesendet, der dann den Rest der Arbeit erledigt. Also muss ich einen Weg finden, den Zählerwert zurück an die C# -Klasse zu senden. –

+0

Sie können eine andere Ajax-Methode aufrufen, um den Zählerwert an C# class –

+0

zu senden: - Bitte, zeigen Sie mir, wie Sie das tun, denn an diesem Punkt bin ich wirklich verloren und verwirrt. –

Verwandte Themen