2010-08-16 24 views
13

Tengo el siguiente código;

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

Y en mi controlador;

[ValidateInput(false)] 
    public ActionResult jQueryAddComment(Comment comment) 
    { 
     CommentSection commentSection = new CommentSection(); 

     //ya da - ya da 
     // fill the commentsection object with data 

     //then 
     return PartialView("CommentSection", commentSection); 

    } 

Sin embargo, cuando regreso a la página, la alerta de éxito no ocurre. ¿Alguien puede ver el error en esta lógica?

+0

¿Cuál es la respuesta actual a la publicación? Verifique la respuesta con Firebug y/o Fiddler. – jfar

+0

buen punto @jfar – griegs

Respuesta

25

Su esperando JSON en el .Ajax POST, pero en el método de acción su devolución de PartialView?

Probar:

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

Ese es un buen punto. Devolví un objeto json pero entonces data.message era nulo – griegs

+0

Sí, parece que solo está devolviendo html y el Javascript está esperando un 'Objeto JSON' ... – xandercoded

+0

Si devuelvo Json y luego alerto a este window.alert (datos) Obtengo Objeto. Entonces, ¿cómo puedo obtener el html dentro del objeto? – griegs

0

A menos que se copió sobre el mal parece que se echa en falta algunas fichas de cierre.

 $.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); 
      } //<-- added close for anonymous function 
     }); //<--added close/semicolon for ajax function 

Además, está PUBTANDO pero su acción no parece tener el atributo [Publicar]. Cuando ejecuta esto en el depurador, ¿se golpea un punto de interrupción en su acción?

+0

Lo sentimos, los tokens de cierre son correctos, simplemente no copié la función completa – griegs

+1

PostAttribute no es necesario, aceptará todos los verbos HTTP cuando no estén presentes ... – xandercoded

+0

Tiene un punto de interrupción en 'jQueryAddComment 'recibir un golpe en el depurador? – jwsample

Cuestiones relacionadas