2013-03-07 43 views
58

Vấn đề của tôi thì ngược lại điều này: How do I convert an HttpRequestBase into an HttpRequest object?Làm thế nào để chuyển đổi một HttpRequest thành một đối tượng HttpRequestBase?

Trong ứng dụng ASP.NET MVC của tôi, tôi có một phương pháp được sử dụng bởi nhiều bộ điều khiển nhận được một HttpRequestBase như là đối số.

Bây giờ tôi phải gọi phương thức đó từ phương pháp khác, đó không phải là một hành động (đó là một kẻ đánh chặn nhibernate). Trong phương pháp thứ hai này, tôi có thể truy cập HttpContext.Current.Request, đó là một HttpRequest và tôi không thể truyền nó đến HttpRequestBase (tôi nghĩ rằng nó có khả năng do đặt tên ...).

Có ai đó biết mối quan hệ nào là lớp học này không và tôi có thể giải quyết vấn đề của mình như thế nào? Cảm ơn bạn.

Trả lời

99

Bạn sẽ muốn quấn mình trong một HttpRequestHttpRequestWrapper:

var wrapper = new HttpRequestWrapper(httpRequest); 

Các HttpRequestWrapper thừa hưởng từ HttpRequestBase.

+7

có thể hữu ích 'mới HttpRequestWrapper (HttpContext.Current.Request) ' – Yasser

10

giải pháp thay thế mà không yêu cầu để tạo một đối tượng mới:

var httpRequestBase = httpRequest.RequestContext.HttpContext.Request; 

Tôi đã thử nghiệm này trong MVC 5.

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