2013-03-07 24 views
58

Mój problem jest przeciwieństwem tego: How do I convert an HttpRequestBase into an HttpRequest object?Jak przekonwertować obiekt HttpRequest na obiekt HttpRequestBase?

W mojej aplikacji ASP.NET MVC mam metodę wykorzystywaną przez wiele kontrolerów, które otrzymują HttpRequestBase jako argument.

Teraz muszę wywołać tę metodę z innej metody, która nie jest akcją (jest to przechwytujący nhibernate). W tej drugiej metodzie mogłem uzyskać dostęp do HttpContext.Current.Request, to jest HttpRequest i nie mogę go przesłać do HttpRequestBase (myślałem, że było to możliwe z powodu nazywania ...).

Czy ktoś wie, w jakim związku są te zajęcia i jak mogę rozwiązać mój problem? Dziękuję.

Odpowiedz

99

Będziemy chcieli, aby owinąć HttpRequest w sposób HttpRequestWrapper:

var wrapper = new HttpRequestWrapper(httpRequest); 

W HttpRequestWrapper dziedziczy z HttpRequestBase.

+7

mogą być pomocne 'nowy HttpRequestWrapper (HttpContext.Current.Request)' – Yasser

10

Alternatywne rozwiązanie, które nie wymaga, aby utworzyć nową instancję:

var httpRequestBase = httpRequest.RequestContext.HttpContext.Request; 

Ja testowałem to w MVC 5.

Powiązane problemy