2008-11-11 24 views
5

Tôi có một chức năng để kiểm tra nếu một cookie (theo tên) tồn tại hay không:Tiếp cận đáp ứng đối tượng trong một lớp học ASP.NET

Private Function cookieExists(ByVal cName As String) As Boolean 
    For Each c As HttpCookie In Response.Cookies 
     If c.Name = cName Then Return True 
    Next 
    Return False 
End Function 

Tôi có một lớp học để xử lý các tập tin cookie một cách ứng dụng cụ thể, và tôi muốn hợp nhất tất cả các chức năng liên quan đến cookie cho lớp này. Tuy nhiên, tôi không thể sử dụng mã này nếu tôi chỉ đơn giản di chuyển nó từ trang aspx (nơi nó hiện đang cư trú) đến lớp nói trên vì tôi nhận được lỗi: 'Name' Response is not declared. Tôi đã sửa đổi lớp để cho phép truyền tham chiếu đến đối tượng Response :

Public Function cookieExists(ByVal cName As String, ByRef Response As HttpResponse) As Boolean 
    For Each c As HttpCookie In Response.Cookies 
     If c.Name = cName Then Return True 
    Next 
    Return False 
End Function 

Câu hỏi của tôi là: Có cách nào tốt hơn không?

Trả lời

13
HttpContext.Current.Response 
HttpContext.Current.Request 
+0

Awesome, cảm ơn. – Anders

+0

bằng System.Web; –

+0

Điều gì sai khi chuyển đối tượng Yêu cầu và Trả lời làm tham số cho hàm? – palswim

1

HttpContext.Current sử dụng mẫu thiết kế bối cảnh xung quanh, vì vậy bạn có thể truy cập đối tượng Response từ bất kỳ đâu trong mã của bạn. Nó rất hữu ích.

Đối với những băn khoăn, mô hình bối cảnh môi trường xung quanh là rất mát mẻ, và được trình bày chi tiết ở đây:

http://aabs.wordpress.com/2007/12/31/the-ambient-context-design-pattern-in-net/

+0

Cảm ơn bạn đã đọc, rất nhiều thông tin – Anders

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