Tengo un sitio donde la página de cada usuario muestra comentarios y permite que otros usuarios agreguen comentarios. Quiero tenerlo para que el formulario para agregar comentarios esté en la página y cuando un usuario agregue un comentario, se agregue a la base de datos y se muestre en la sección de comentarios con AJAX. Estoy usando jQuery para AJAX y LINQ to SQL para manejar la lógica de la base de datos. ¿Cómo haría esto para que después de agregar el comentario a la base de datos, la sección de comentarios se actualice y actualice sin actualizar la página?ASP.NET MVC AJAX con jQuery
Respuesta
Debería aprovechar el evento de 'éxito' (o 'completo') que se activa con la llamada jQuery ajax para activar una llamada AJAX posterior para actualizar el contenido de sus revisiones. Esto probablemente se vería algo así como (alado que, no probado):
function UpdateComments(){
resultHTML = jQuery.ajax({
type: 'GET',
url: 'Comments/List/UserID'
}).responseText;
$('#comments').html(resultHTML);
}
function PostComment(targetUserID, commenterUserID, comment)
jQuery.ajax({
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: $.toJSON({review: comment, id:targetUserID, commenter:commenterUserID}),
dataType: 'json',
url: 'Comments/Add',
success: function(result){
// Only update comments if the post was successful:
resultJson = $.evalJSON(result);
if(resultJson['success'] == true){
UpdateComments();
}
}
});
EDITAR El código JSON haría uso del plugin de jQuery jQuery-JSON (http://code.google.com/p/jquery-json/)
En respuesta a Matt, otra forma para enviar los datos del formulario, en lugar de JSON, puede llamar a $ ('# form'). serialize() en el campo 'datos' de la función jQuery.ajax. Esto eliminaría la necesidad de un complemento.
Además, no soy un experto en este tema, sigo intentando aprenderlo yo mismo, pero ¿es necesario tener una solicitud POST y GET cuando podría insertar la respuesta de ASP.NET MVC en la página en su lugar? ? Esto daría como resultado una solicitud. Sin embargo, puede haber una razón válida para ese enfoque. Creo que la mina se vería así:
// The Controller Action should return a PartialView as response,
// so just a user control that contains the comments.
function PostComment(targetUserID, commenterUserID, comment)
jQuery.ajax({
type: 'POST',
data: $('#commentForm').serialize(),
url: 'Comments/Add',
success: function(result){
$('#comments').html(result);
}
}
});
Hola Julián: ese es un muy buen punto RE: combina los nuevos resultados de comentarios en la respuesta POST. Supongo que se reduce a la cantidad de puritador RESTful que eres. Personalmente, lo combinaría en la respuesta, para guardar el viaje de ida y vuelta, aunque algunos puristas podrían argumentar lo contrario. – Matt
- 1. ASP.Net MVC formulario Ajax con validación jQuery
- 2. ASP.NET AJAX vs jQuery en ASP.NET MVC
- 3. jquery ajax formularios para ASP.NET MVC 3
- 4. ASP.NET MVC 2 - Error con la respuesta jquery ajax
- 5. ASP.NET MVC representación vista parcial con jQuery ajax
- 6. AJAX y jQuery con MVC
- 7. Tabla paginada con ASP.NET MVC y AJAX
- 8. ASP.NET MVC y AJAX
- 9. ASP.NET MVC AJAX Calendario
- 10. Autenticación jQuery Forms con ASP.NET MVC
- 11. ASP.NET MVC página de carga con AJAX
- 12. Asp.Net Mvc Los parámetros de entrada JQuery ajax son nulos
- 13. ASP.net MVC AntiForgeryToken sobre AJAX
- 14. de carga de archivos Ajax jQuery en asp.net mvc
- 15. jquery ajax con asp.net no funciona
- 16. Asp.net mvc fileupload via ajax
- 17. asp.net mvc deshabilitar caché ajax
- 18. jQuery Ajax matriz POSTing para controlador ASP.NET MVC
- 19. Autorizar el atributo y jquery AJAX en asp.net MVC
- 20. ASP.Net MVC, AJAX y mejora progresiva
- 21. Validación de cliente ASP.NET MVC con vistas parciales y Ajax
- 22. Asp.net MVC Ajax JSON (post Array)
- 23. ¿Cuál es el punto de ASP.net AJAX en ASP.net MVC?
- 24. Jquery o Basic XmlHttpRequest para MVC AJAX
- 25. JQuery/WCF sin ASP.NET AJAX:
- 26. Webforms de ASP.NET con jQuery?
- 27. ¿Dónde está la documentación ASP.NET MVC AJAX?
- 28. AJAX con Spring MVC
- 29. ASP.NET MVC HTML.AntiForgeryToken() con múltiples solicitudes AJAX desde una página
- 30. Implementando el rastreo hashbang/Ajax de Google con ASP.NET MVC?
la URL debe ser: '/ Comentarios/Add' ... de lo contrario la url se añade a la URL actual y lo más probable es obtener una –
404. De hecho, probablemente sea mejor usar uno de los ayudantes de MVC para generar la ruta, porque el líder/también lanzará cosas si su sitio está operando como una aplicación anidada en otro sitio web en IIS – Matt