2011-07-20 6 views
0

コントローラからHttpContext.Currentにアクセスしようとするとエラーが発生します。 セッション固有のデータを追加するセッションを取得したいのですが、これで問題が発生します。mvcのHttpContextに関する問題2

var a = HttpContext.Current.Session;

このエラーは、 'System.Web.HttpContextBase'に 'Current'の定義が含まれていないと言われています。

答えて

0

私はあなたがHttpContext.Currentを使用しないでくださいコントローラ

からHttpContext.Currentにアクセスしてみてください。

だけでセッションにアクセスするためにSessionプロパティを使用します。

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

コントローラクラスがすでにHttpContextと呼ばれる性質を持っているので、あなたがHttpContext.Currentを書くとき、あなたが取得しているエラーの理由はそれは、そのプロパティですが使用され、HttpContextクラスの静的Currentプロパティは使用されません。

+0

ありがとうございます!これはそれを解決しました。一方で、あなたがプログラミングしてインポートするクラスからセッションオブジェクトをきちんと取り出すことができますか?私は思うコントローラの外にSessionオブジェクトを持っていません。 –

+0

@ Bruno Figaresでは、セッションにアクセスできるASP.NET MVC標準クラス(コントローラ、アクションフィルタ、ヘルパーなど)の外でセッションを使用しないでください。したがって、カスタムクラスはセッションからデータをフェッチしません。悪い習慣です。あなたはコントローラからこのデータを渡します... –

関連する問題