2013-08-27 44 views

Trả lời

7

Chúng tĩnh vì chúng hoàn toàn không trạng thái, chúng không tạo ra một thể hiện của lớp của trang của bạn và không có gì được truyền cho chúng trong yêu cầu (tức là các giá trị trường ViewState và trường mẫu).

HTTP là không trạng thái theo mặc định, ASP.Net thực hiện nhiều nội dung trong nền với ViewState, Session, v.v. trong một yêu cầu trang chuẩn để giúp các nhà phát triển dễ dàng hơn trong cuộc sống.

Khi phương thức web được gọi thông qua AJAX, trang không gửi tất cả dữ liệu biểu mẫu cần thiết ASP.Net nhúng vào trang để theo dõi trạng thái yêu cầu vì nó sẽ làm cho phương pháp web quá chậm; và nếu bạn cần thực hiện nhiều thao tác, bạn nên chuyển nó sang dịch vụ web chuyên dụng thay thế.

Bạn có thể truy cập vào các phương thức trên trang bằng cách sử dụng HttpContext.CurrentHandler được giải thích chi tiết hơn here và cũng là người dùng hiện tại nếu bạn cần thông qua HttpContext.Current.User.

Có một bài viết tuyệt vời here giải thích chi tiết hơn.

+2

Bối rối. Tại sao các webmethods trong [trang] này (https://msdn.microsoft.com/en-us/library/byxd99hx%28v=vs.90%29.aspx) không tĩnh? – Moon

+2

Vì nó được lưu trữ trong một dịch vụ web thay vì trên một trang web. – Sean

Các vấn đề liên quan