2010-08-16 12 views
13

Ich habe den folgenden Code;

 $.ajax({ 
      url: "/Home/jQueryAddComment", 
      type: "POST", 
      dataType: "json", 
      data: json, 
      contentType: 'application/json; charset=utf-8', 
      success: function(data){ 
       //var message = data.Message; 
       alert(data); 
       $('.CommentSection').html(data); 
      } 

Und in meinem Controller;

Wenn ich jedoch auf die Seite zurückkomme, passiert der Erfolgsalarm nicht. Kann jemand den Fehler in dieser Logik sehen?

+0

Wie lautet die aktuelle Antwort auf die Post? Überprüfen Sie die Antwort mit Firebug und/oder Fiddler. – jfar

+0

guter Punkt @jfar – griegs

Antwort

25

Ihre erwarteten JSON in der .Ajax POST, aber in der ActionMethod Ihre Rückkehr ein PartialView?

Versuchen:

$.ajax({ 
    url: "/Home/jQueryAddComment", 
    type: "POST", 
    dataType: "html", 
    data: json, 
    success: function(data){ 
     //var message = data.Message; 
     alert(data); 
     $('.CommentSection').html(data); 
    } 
} 
+0

Das ist ein guter Punkt. Ich gab ein JSON-Objekt zurück, aber dann data.message war null – griegs

+0

Yeah sieht aus, als könnten Sie nur HTML zurückgeben und das Javascript erwartet ein 'JSON Object' ... – xandercoded

+0

Wenn ich Json zurück und dann diese window.alert (Daten) Ich bekomme ein Objekt. Wie bekomme ich nun den HTML-Code innerhalb des Objekts? – griegs

0

Es sei denn, es über falsch kopiert wurde es scheint, dass Sie einige abschließende Token fehlen.

Auch Sie sind POST, aber es scheint, dass Ihre Aktion nicht über das Attribut [Post] verfügt. Wenn Sie dies im Debugger ausführen, wird ein Breakpoint für Ihre Aktion ausgelöst?

+0

Entschuldigung, die Closing-Tokens sind korrekt, ich habe einfach nicht die ganze Funktion kopiert – griegs

+1

PostAttribute ist nicht notwendig, akzeptiert alle HTTP-Verben, wenn nicht vorhanden ... – xandercoded

+0

Gibt einen Breakpoint auf 'jQueryAddComment 'im Debugger getroffen werden? – jwsample