2012-05-15 111 views
25

我有一個C#web應用程序的ASP.NET。我創建的一個類需要使用HttpContext。System.Web.HttpContext不被識別

根據http://msdn.microsoft.com/en-us/library/system.web.httpcontext(v=vs.90).aspx, HttpContext存在於.NET 3.5(這是我已安裝的版本)的System.Web名稱空間中。

然而,當我寫的HttpContext。 - >我沒有看到自動完成。這是告訴我HttpContext不被識別。

我做功課,尋找常用解決方案:1,我添加的System.Web引用(通過右鍵點擊引用 - >選擇.NET標籤和特定的參考)。 2.我也確保將這一行包含在類中:using System.Web;

請告訴我還能做些什麼。如果一切順利的話,當我寫HttpContext的時候。 - 我應該看到一個下拉列表,並能夠從中選擇「當前」屬性/元素。我是C#和Visual Studio(2008)的新成員,但我認爲自動完成不能很好地運行是一個缺乏引用/名稱空間/加載錯誤/其他任何事情的好跡象。

+0

只是一個簡單的問題 - 你在哪裏試圖使用HttpContext?它是否隱藏代碼? ASPX文件?另一類? – Katalonis

+0

你有正確的使用方法嗎? System.Web,我想? –

+0

Andrew:我正在使用System.Web。 Katalonis,我試圖在CLASS中使用HttpContext(一個添加到App_Code文件夾中的.CS文件)。 [...] 使用系統。網絡; 公共靜態類公用事業{ 靜態實用程序() { } 公共靜態無效LOGERROR(異常前) { System.Web.HttpContext上下文= System.Web.HttpContext.Current; ..... 這是課程的開始,如果有幫助!謝謝! –

回答

35

當你想實例化的HttpContext類的構造函數很少使用。我總是使用靜態屬性HttpContext.Current這是所有ASP.Net應用程序使用的當前實例。

使用它確保你已經對System.Web.dll程序集添加引用以及的System.Web命名空間

+3

我用的是dotNet 4.5與vs 2015,這是行不通的。 System.Web沒有任何HttpContext類。 –

+0

...除非您安裝NuGet軟件包「Microsoft.AspNet.WebApi」 –

+0

這也不起作用@JohnHenckel – PinoyDev

2
  1. 確保包括裝配
  2. 確保DLL的引用是有
  3. 嘗試「決心」,並有在Visual Studio包括參考
  4. 調試,關閉並重新啓動應用程序。

該類應該工作。

UPDATE:

using System.Web 

class YourClass { 
    public YourClass() { 
    HttpContext _context = new HttpContext(your parameters) 
    } 
} 
+0

你好jefpw,謝謝你的回答!你能否詳細解釋一下你的答案?正如我所說,我是新的。 1.如何包括程序集,也許我已經完成了,不確定你的意思? 2.至於包含引用,我如上所述(右鍵單擊引用 - >選擇.NET選項卡和特定的System.Web引用)。 3.通過嘗試「解決」是什麼意思?非常感謝! –

+0

見上文。如果你是初學者,HttpContext是非常高級的類。爲什麼你需要HttpContext。我沒有在ASP.NET中使用HttpContext,並且我已經使用了ASP.NET 4-5年。 – iefpw

+0

iefpw:我需要HttpContext - 據我所知,HttpContext.Current.Request.RawUrl顯示當前頁面URL(它的簡寫形式),我將在特製的錯誤頁面上顯示該信息。這只是我的第二個網站。使用我可以在網上找到的所有資源,技巧和建議。哇,在外地工作4年。恭喜! –

5

這是沒有使用正確的框架的一個簡單的例子,我的意思全脂版本,而不是默認的「輕」版本。

右鍵單擊該項目,然後點擊屬性,並確保完整版的最新架構的選擇,即「.NET框架4' ,」 .NET框架4客戶端配置文件」

+1

提示:對於vs 2015,請確保在您的項目中安裝NuGet軟件包「Microsoft.AspNet.WebApi」。僅安裝「Microsoft.AspNet.WebApi.Core」是不夠的。 –