Tôi có trang web nơi trang của mỗi người dùng hiển thị nhận xét và cho phép người dùng khác thêm nhận xét. Tôi muốn có nó để các mẫu bình luận thêm là trên trang và khi một người dùng thêm một bình luận, nó được thêm vào cơ sở dữ liệu và hiển thị trong phần bình luận với AJAX. Tôi đang sử dụng jQuery cho AJAX và LINQ to SQL để xử lý logic cơ sở dữ liệu. Làm thế nào sẽ đi về việc này để sau khi bình luận được thêm vào cơ sở dữ liệu, phần ý kiến được làm mới và cập nhật mà không làm mới trang?ASP.NET MVC AJAX với jQuery
Trả lời
Bạn sẽ cần tận dụng sự kiện 'thành công' (hoặc 'hoàn thành') được kích hoạt bởi cuộc gọi jQuery ajax để kích hoạt cuộc gọi AJAX tiếp theo để làm mới nội dung bài đánh giá của bạn. Điều này có lẽ sẽ giống như thế (có cánh nó, chưa được kiểm tra):
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();
}
}
});
EDIT Mã JSON sẽ tận dụng các plugin jquery jquery-json (http://code.google.com/p/jquery-json/)
Để đối phó với Matt, một cách khác để gửi dữ liệu biểu mẫu, thay vì JSON, bạn có thể gọi $ ('# form'). serialize() trong trường 'dữ liệu' của hàm jQuery.ajax. Điều này sẽ loại bỏ sự cần thiết cho một plugin.
Ngoài ra, tôi không phải là chuyên gia về chủ đề này, vẫn cố gắng tự học, nhưng cần phải có cả yêu cầu POST và GET khi bạn có thể chèn phản hồi từ ASP.NET MVC vào trang thay thế ? Điều này sẽ dẫn đến một yêu cầu. Có thể có một lý do hợp lệ cho cách tiếp cận đó mặc dù. Tôi đoán tôi sẽ trông như thế này:
// 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);
}
}
});
Hi Julian - đó là một điểm rất tốt RE: kết hợp các kết quả nhận xét mới vào phản hồi POST. Tôi cho rằng nó sẽ tóm tắt cho bạn biết bao nhiêu của một quạn RESTful purist. Cá nhân, tôi sẽ kết hợp nó vào câu trả lời, để tiết kiệm chuyến đi khứ hồi, mặc dù một số người thuần túy có thể tranh luận khác. – Matt
- 1. ASP.NET AJAX vs jQuery trong ASP.NET MVC
- 2. jQuery ajax upload file trong asp.net MVC
- 3. Mẫu ASP.Net MVC Ajax với xác thực jQuery
- 4. ASP.NET MVC AJAX Calendar
- 5. Asp.Net Mvc JQuery tham số đầu vào ajax là null
- 6. hình thức jquery ajax cho ASP.NET MVC 3
- 7. ASP.NET MVC Validation Framework khi đăng thông qua jquery $ .ajax?
- 8. ASP.NET MVC 2 - Không có phản ứng jquery ajax
- 9. jquery ajax với asp.net không hoạt động
- 10. ASP.NET Ajax Control Kit so với JQuery
- 11. Điểm của ASP.net AJAX trong ASP.net MVC là gì?
- 12. Ví dụ AJAX cơ bản với ASP.NET MVC?
- 13. Bảng phân trang với ASP.NET MVC và AJAX
- 14. jQuery với ASP.NET MVC 3 sách/hướng dẫn?
- 15. Xác thực Biểu mẫu jQuery với ASP.NET MVC
- 16. ASP.Net Ajax $ find() Jquery Equivalent
- 17. plugin jquery webcam với asp.net mvc 3
- 18. Tải tập tin mvc Asp.net qua ajax
- 19. jQuery Mobile Directions ASP.NET hoặc MVC
- 20. AJAX với Spring MVC
- 21. jQuery Draggable, Droppable, ASP.NET MVC
- 22. Jquery AJAX với ASP.NET WebMethod Returning Entire Page
- 23. Sử dụng jQuery cho AJAX với ASP.NET Webforms
- 24. Mẫu ASP.NET MVC được tải qua ajax gửi nhiều lần
- 25. jQuery CRUD trong ASP.NET MVC
- 26. Mảng bài đăng jQuery - ASP.Net MVC 4
- 27. Phát hiện IsAjaxRequest() với ASP.NET MVC và Trình tải xuống Tệp JQuery/Tệp JQuery
- 28. ASP.NET 2.0 JQuery AJAX Đăng nhập
- 29. .net mvc và jquery $ .ajax trên IE9
- 30. JQuery-Mobile và ASP.Net - AJAX hoặc Postback?
url nên là: '/ Comments/Add' ... nếu không url được nối vào url hiện tại và nhiều khả năng bạn sẽ nhận được một 404. –
Trong thực tế, nó có lẽ tốt hơn để sử dụng một trong những người trợ giúp MVC để thực sự tạo ra đường dẫn, bởi vì hàng đầu/cũng sẽ ném mọi thứ ra nếu trang web của bạn đang hoạt động như một ứng dụng lồng nhau dưới một trang web khác trong IIS – Matt