Tôi biết các bộ điều khiển MVC khá giỏi trong việc phân phát các yêu cầu AJAX được định dạng JSON, nhưng có chức năng ASP.NET tích hợp nào tôi có thể sử dụng cho các cuộc gọi kiểu này từ một trang web mẫu đơn thuần cũ không?Làm cách nào để gọi AJAX máy chủ bằng JSON với Biểu mẫu web?
Trả lời
Bạn có thể sử dụng tích hợp sẵn AJAX ASP.NET.
Lựa chọn 1 - sử dụng một dịch vụ web (nếu bạn muốn các chức năng để có thể tái sử dụng):
- tạo ra một dịch vụ web (.asmx) với [ScriptService] thuộc tính,
- thêm vào trang của bạn và thêm dịch vụ web vào bộ sưu tập Dịch vụ của mình,
- sử dụng proxy JavaScript được tạo bởi ScriptManager trong trang yor.
Lựa chọn 2 - Phương pháp trang sử dụng (nếu bạn muốn các chức năng trên một trang duy nhất mà không cần tạo một dịch vụ web):
- xác định phương pháp tĩnh trong trang của bạn, thêm [WebMethod] gán cho họ,
- thêm một ScriptManager với EnablePageMethods = "true",
- sử dụng đối tượng PageMethods để gọi phương thức này từ JavaScript.
Trong cả hai trường hợp, JSON sẽ được sử dụng để truyền dữ liệu.
Dưới đây là một rộng rãi tutorial với một số mẫu mã.
Tuy nhiên, ASP.NET AJAX thường bị đổ lỗi vì không hiệu quả - ví dụ, JS nó tạo ra có xu hướng khá lớn. Vì vậy, nếu bạn quan tâm đến hiệu suất, bạn muốn kiểm tra kỹ lưỡng.
Bạn cũng có thể có một cái nhìn tại thread này: .NET AJAX Calls to ASMX or ASPX or ASHX?
Sử dụng trình xử lý web chung. tức là ashx. Đây thậm chí còn nhanh hơn các hành động MVC.
Nếu bạn đã có .NET 3.5 được cài đặt trên máy chủ, bạn có thể tận dụng lợi thế của JSON serialization tools mà tàu với khuôn khổ.
Điều này sử dụng lớp học DataContractJsonserializer.
API web hoạt động tốt với Biểu mẫu web. http://www.asp.net/web-api/overview/creating-web-apis/using-web-api-with-aspnet-web-forms
Về lý thuyết nó có thể. Tuy nhiên, trong thực tế sử dụng, bạn có thể gặp vấn đề khóa phiên: mọi yêu cầu từ trang biểu mẫu web được liên kết với phiên người dùng theo mặc định, do đó bạn chỉ có thể thực hiện yêu cầu ajax một lần.Nó có thể hoặc có thể không quan trọng đối với dự án của bạn –
Bạn có thể sử dụng phiên chỉ đọc cho hầu hết các yêu cầu và đọc-ghi để đăng nhập/đăng xuất. Nó ngăn chặn vấn đề khóa. Phiên mặc định không được bật cho API Web. Tôi phải gọi phương thức từ Application_PostAuthorizeRequest: HttpContext.Current.SetSessionStateBehavior (SessionStateBehavior.ReadOnly); –
Tôi quan tâm, bởi vì chúng tôi đã cố gắng bao gồm một mô-đun API Web trong một mẫu web ASP.NET kế thừa. Đúng là Web API không có phiên làm việc theo mặc định, nhưng khi nó được kết hợp với Web Form, nó sẽ được thực hiện. Chúng tôi thậm chí có thể đọc thông tin phiên từ yêu cầu API. Trong trường hợp thông thường nó không phải là một vấn đề, cho đến khi chúng tôi có một số cuộc gọi API nặng –
phương pháp ưa thích của tôi trong trường hợp này là sử dụng một handler generic web (ashx) và JSON.net http://james.newtonking.com/json
Rất đơn giản, nhanh chóng và nhẹ.
Một ví dụ đơn giản sẽ là:
public void ProcessRequest(HttpContext context)
{
string jsonOutput = string.Empty;
context.Response.ContentType = "application/json";
using (var db = new MyDBContext())
{
var dbResult = db.myobject.select();
jsonOutput = Newtonsoft.Json.JsonConvert.SerializeObject(dbResult);
}
context.Response.Write(jsonOutput);
}
- 1. Làm cách nào để gửi biểu mẫu bằng AJAX/JSON?
- 2. Cách tạo nội dung trên ejs bằng jquery sau khi gọi ajax để chuyển máy chủ
- 3. Làm cách nào để đăng dữ liệu biểu mẫu lên cửa sổ mới bằng jQuery/AJAX?
- 4. cách truyền đúng đối tượng json vào máy chủ bình bằng cách sử dụng jquery ajax
- 5. Làm cách nào để sử dụng plugin Xác thực jQuery với xác thực phía máy chủ ở cấp biểu mẫu?
- 6. bỏ phiếu cho máy chủ bằng ajax
- 7. jQuery - Làm cách nào để đưa JSON qua Ajax?
- 8. Làm cách nào để gửi biểu mẫu bằng cách sử dụng yêu cầu Ajax trong Liferay?
- 9. Làm cách nào để gọi một tập lệnh shell cục bộ từ máy chủ web?
- 10. Làm cách nào để tôi viết một ứng dụng web node.js với cả mã phía máy chủ và máy khách?
- 11. Biểu mẫu web ASP.NET jQuery AJAX Chuyển nhiều tham số đến Phương thức web
- 12. Làm cách nào để gửi dữ liệu nhiều phần/biểu mẫu đến máy chủ web từ Android?
- 13. Thực hiện cuộc gọi HTTP POST với nhiều dữ liệu/biểu mẫu bằng jQuery?
- 14. Gọi dịch vụ web trên máy chủ bên ngoài từ javascript bằng asp.net và C#
- 15. Làm cách nào để xác thực biểu mẫu bằng JSON Schema?
- 16. Gửi biểu mẫu bằng AJAX và jQuery
- 17. Làm cách nào để đăng XML lên máy chủ thông qua biểu mẫu HTML?
- 18. Làm thế nào để thử gọi AJAX với NSURLProtocol?
- 19. Làm cách nào để gửi biểu mẫu bằng LinkButton?
- 20. gửi nhiều biểu mẫu với AJAX
- 21. Kiến trúc AJAX và Máy khách-Máy chủ với JavaScript
- 22. Tự động lưu biểu mẫu trong Rails bằng AJAX
- 23. làm cách nào để gửi lại biểu mẫu bài đăng đa dạng/biểu mẫu dữ liệu với tệp tải lên lên máy chủ khác với node.js (express.js)?
- 24. POST so với Ajax gọi
- 25. Làm cách nào để ngăn SuperAgent AJAX gọi OPTIONS?
- 26. Làm cách nào để lưu hình ảnh biểu đồ trên máy chủ bằng bảng highcharts?
- 27. Làm thế nào để triển khai một máy chủ tối thiểu cho AJAX bằng Python?
- 28. Biểu mẫu gửi AJAX bằng cách sử dụng Chai (Python)
- 29. jQuery ajax, gửi biểu mẫu với tệp loại đầu vào và Json
- 30. Làm cách nào để gửi biểu mẫu mà không cần làm mới trang bằng cách sử dụng Django, Ajax, jQuery?
Trang phương pháp là giải pháp. – ProfK