2012-06-27 3 views
6

モデルからセッションにアクセスするにはどうすればよいですか?モデルのセッションにアクセスする方法asp.net mvc

私が使用しよう:

public IQueryable<EstudentsViewModel> GetEstudentsProjected(decimal? Code) 
     { 
      . 
      . 
      . 
      decimal id; 
      id = (decimal)Session["Consul"]; 
      . 
      . 
      . 
     } 

が表示されます。名「セッションは、」私はモデルからセッションにアクセスするにはどうすればよい

+0

ここで何を達成しようとしていますか?なぜあなたはセッションでこの値を保存していますか?私はあなたがそれらの質問に答えを出すと、あなたはこれをする必要からあなたを保つはるかに良い選択肢を与えられると思います。 –

答えて

23

現在のコンテキスト内に存在しないのですか?あなたは常に次のポルノ実行することができ

:私の聖なる地球ああ、

HttpContext.Current.Session["Consul"] 

しかししてください、このような犯罪を実行しないように私を約束してください。

モデルは、セッションが何であるかを決して知るべきではありません。セッションはウェブ用語であり、モデルは完全にそれに不可知論的でなければなりません。モデルに必要な情報を、セッションにアクセスできるコントローラから渡す必要があります。

だから、これをチェックアウト:

public IQueryable<EstudentsViewModel> GetEstudentsProjected(decimal? Code, decimal id) 
{ 
    ... 
} 

をし、コントローラからこのメソッドを呼び出すときにコントローラがそれへのアクセス権を持っているので、あなたは、単にセッションから値を渡します。

+1

私はこれが非常に古い投稿だと知っていますが、ISessionManagerをパラメータとして渡すことはできませんか? ISessionManagerは、HttpContext.Current.Sessionオブジェクトの周りのラッパーインターフェイスです。 –

関連する問題