2011-07-20 97 views
0

當我嘗試從控制器訪問HttpContext.Current時出現錯誤。 我想獲得會話以添加一些會話特定的數據,這給我一個問題:mvc 2中的HttpContext問題

var a = HttpContext.Current.Session;

錯誤,據稱是'System.Web.HttpContextBase'不包含'當前'的定義。

回答

0

當我嘗試從控制器

你永遠不應該使用HttpContext.Current訪問HttpContext.Current。

只需使用Session屬性來訪問會話:

public ActionResult Index() 
{ 
    Session["foo"] = "bar"; 
    ... 
} 

原因你所得到的錯誤是因爲控制器類已經有一個名爲HttpContext屬性,因此當你寫HttpContext.Current它的屬性,而不是HttpContext類中的靜態Current屬性。

+0

謝謝!這解決了它。另一方面,如何從你編程和導入的類中整齊地檢索會話對象?我沒有控制器以外的會話對象,我認爲。 –

+0

@Bruno Figares,你絕對不應該使用ASP.NET MVC標準類以外的會話來訪問會話(控制器,動作過濾器,幫助器......)。所以你的自定義類不會從會話中獲取數據。這是不好的做法。你把這些數據從控制器傳給他們...... –