2013-04-29 30 views
13

我正在將ASP.NET Web應用程序轉換爲MVC Web Api項目。 我的一種方法預計HttpRequest類。但是,Web Api控制器僅保存HttpRequestMessagethis.Request)對象。 你知道嗎我可以將HttpRequestMessage轉換爲HttpRequest將HttpRequestMessage轉換爲HttpRequest

回答

22

您可能不需要轉換HttpRequestMessage。還有另一種方法:

var context = new HttpContextWrapper(HttpContext.Current); 
HttpRequestBase request = context.Request; 
+2

System.Web.HttpContext.Current.Request – sobelito 2014-02-25 20:32:33

+1

這似乎非常像欺騙我,但我不得不這樣做,如果我想寫的函數,可以調用來自ASP.NET Web API控制器以及ASP.NET MVC控制器。對於我來說,我不明白web API不能僅僅建立在MVC之上(所以ApiController可能是一個正常的MVC控制器的子類)。相反,如果你想一起使用MVC和API,你必須在兩個並行但不兼容的世界之間導航,每個世界都有相同的概念。 – Andy 2016-07-07 16:01:52

0

嘗試使用/創建HttpRequestWrapper使用您的HttpRequestBase。

+0

如何獲得'HttpRequestBase'?我應該自己創建一個嗎? (即創建新的對象,並複製'HttpRequestMessage'參數給它) – Avisho 2013-04-30 10:41:55

相關問題