Konwertuję aplikację internetową ASP.NET do projektu MVC Web Api. Jedna z moich metod oczekuje klasy HttpRequest
. Jednak kontroler Web Api przechowuje tylko obiekt HttpRequestMessage
(this.Request
). Czy wiesz, jak przekonwertować HttpRequestMessage
na HttpRequest
?Konwertuj HttpRequestMessage na HttpRequest
13
A
Odpowiedz
22
Prawdopodobnie nie trzeba konwertować z HttpRequestMessage. Istnieje inny sposób:
var context = new HttpContextWrapper(HttpContext.Current);
HttpRequestBase request = context.Request;
0
Spróbuj użyć/utworzyć HttpRequestWrapper przy użyciu HttpRequestBase.
+0
Jak uzyskać "HttpRequestBase"? powinienem sam je stworzyć? (tj. utwórz nowy obiekt i skopiuj do niego parametry "HttpRequestMessage") – Avisho
System.Web.HttpContext.Current.Request – sobelito
To wydaje się strasznie jak oszustwo, ale jestem zmuszony to zrobić, jeśli chcę pisać funkcje, które można nazwać z kontrolerów ASP.NET Web API, a także kontrolerów MVC ASP.NET. Dla mojego życia nie rozumiem, że web API nie może być zbudowany na bazie MVC (więc ApiController może być podklasą normalnego kontrolera MVC). Zamiast tego, jeśli chcesz używać MVC i API, musisz nawigować pomiędzy dwoma równoległymi, ale niekompatybilnymi światami, z tymi samymi pojęciami w każdym. – Andy